会通讯,成功一半
5篇
- 浅谈visionMaster 通讯的应用(非常好用)
- 西门子S7SMART200与VM通讯
- VM_ModbusTCP通讯
- VM和西门子S7的通讯说明
- ID6000通讯方式之FTP详细说明
一、前言
本文讲解了VisionMaster和西门子PLC通过S7通信发送触发信号,实现一个数据地址触发一个流程的功能。
二、西门子PLC的设置
1.需要先安装TIA Portal这个软件并激活,本地测试的plc型号为S7-1200 CPU 1214C AC/DC/Rly 6ES7 214-1BG40-0XB0。
2.打开TIA Portal软件,创建一个新的项目。
3.添加对应的PLC设备。
4.测试是否存在可访问的设备,确保PLC数据可达。
5. 配置PLC的IP地址和连接机制。
6.创建需要的数据块。
7.创建两个整型的数据。
8.取消勾选“优化的块访问”。
9.将程序下载到PLC中。
10.设备转至在线后,开启地址监控。
三、VM端参数配置
1.先打开vm,创建一个西门子S7通讯。
2.设备的IP地址可以根据上一节的第5点配置找到对应的IP,机架号(Rack)是指安装有CPU的机架,槽号(Slot)是用来分配CPU模块、电源模块、接口模块、I/O信号模块、通信模块、功能模块等在机架上的具体位置的,端口号对于S7协议默认就是102,无法更改。
3.点击“新建地址”,配置对应的“DB”和“偏移量”。
4.测试接收数据,可以点击界面上的“数据同步”,确认地址中数据和数据块的变量数据是对应的。
5.测试发送数据,可以点击界面上的“发送测试”。
四、触发功能实现
1.需求说明:在PLC端的DB1中有两个Int类型的数据变量地址,需要实现第一个地数据更改为1的时候,触发执行一次流程1,第二个地址中的数据更改为2的时候,触发执行一次流程2。
2.创建“接收事件”。选择创建一个“字节匹配-协议组装”的接收事件。
3.配置对应的比较规则。由于在DB1中创建的数据类型是Int,所以只需要两个字节且VM通过Address1获取到的数据为00640032,所以起止位置只要“0-1”即可,比较规则设置为“更改为”。同样的事件再创建一个,其中字节的起止位置要配置成“2-3“,“更改为”后的文本框内填入“2”。
4.顺序参数说明:
在解析float、string和32位的int类型的数据时,会存在字节顺序高低位交换的现象,此时就会需要用的顺序这个参数。如下图的Dint,就是一个32位的int类型,123456789的十六进制是075BCD15,其中07是A,5B是B,CD是C,15是D,如果VM端接收到的数据是075BCD15则顺序参数选择ABCD,如果VM端接收到的数据是5B0715CD则顺序选择BADC,如果VM端接收到的数据是15CD5B07则顺序选择DCBA,如果VM端接收到的数据是CD15075B则顺序选择CDAB。
5.配置对应的“全局触发”,只有当事件满足条件时,才会触发对应的动作执行。
6.打开对应地址的“轮询读取”使能。
7.完成上述的所有配置后,在PLC端修改数值,就可以触发对应的流程执行一次。其中不同的比较规则,实现的效果是不同的,目前支持的比较规则有:
不比较:即只要该地址有值,即可;
=/!=:即解析出来的值需要和配置的值一致/不一致;(会导致如果寄存器的值不变化,则会一直触发方案)
上升沿:从其他值变为1;
下降沿:从1变为其他值;
更改为:从其他值变为设定值;
五、总结
VM和西门子S7的通讯,第一步就是在TIA Portal上搭建好DB块,配置好IP以及机架号和槽号,第二步即在VM端按照对应的参数连接上通讯并创建地址,第三步就是按照实际的需求去创建接收事件,根据对应的规则去设置,最后只要配置好全局触发的参数就可以实现一个简单通讯触发流程的功能。