在S7-1200间的通信方式为开放式用户通信(Open User Communication)。此种通信方式是一种程序控制式通信方式,主要特点是传输数据结构具有较高的灵活性,同时此种通信方式只受用于用户程序的控制,可以方便地建立和断开事件驱动的连接,甚至在运行期间也可以修改连接。
S7-1200的通信可以使用TCP和ISO-ON-TCP连接,通信主体可以是两台西门子PLC,或者是300/400的或者是适合的第三方设备。
开放式用户通信的编程指令使用的是TSENDC和TRCVC指令。这两个指令,前者是发送指令,后者为接收指令,除此之外,还具有建立和断开连接的作用。与它们配合使用的TCON和TDISCON指令也可以用于建立和断开连接。
在开放式用户通信中,一台PLC调用TSENDC或TSEND发送数据,另一台PLC调用TRCVC或TRCV接收数据,只能在程序OB(例如OB1)中调用这些指令,这一点在使用时要注意。
1.组态CPU间的通信连接
1)生成一个名为“ISO-on-TCP”的项目,并单击项目树中的“添加新设备”,添加两块CPU 1214C,完成后如图6-2所示。
2)双击项目树中的“设备和网络”,打开网络视图(如图6-3所示)。选中左边的CPU左下角表示以太网接口的绿色小方框。按住鼠标左键不放,将它拖到右边的CPU左下角表示以太网接口的绿色小方框上,将会出现图6-3所示的绿色的以太网线和名称为“PN/IE1”的连接。
图6-2 完成添加两块CPU中的项目视图
图6-3 网络组态
2.调用TSENDC和TRCVC
双击项目树的“程序块”文件夹中的主程序OB1,打开程序编辑器(见图6-4)。将右边的“扩展指令”窗口的“通信”文件夹中的TSENDC拖放到工作区。单击自动出现的“调用选项”对话框中的“确认”按钮,除了自动生成被调用的功能块的背景数据块TSENDCDB外,还会自动生成保存连接的组态参数的连接描述数据块PLC1Connec-tionDB(DB3)。在项目树的程序块文件夹中,可以看到这些自动生成的数据块。
图6-4 项目视图
用同样的方法调用TRCVC,自动生成它的背景数据块TRCVCDB。打开PLC 2的OB1,用上述的方法调用TSENDC和TRCVC。两台PLC的用户程序基本相同。
指令TSENDC的参数介绍:
1)在请求信号REQ的上升沿,根据参数CONNECT指定的DB3中的连接描述,启动数据发送任务。发送成功后,参数DONE在一个扫描周期内为1。
2)CONT(Bool)为1时建立和保持连接,为0时断开连接,接收缓冲区中的数据将会消失。连接被成功建立时,参数DONE在一个扫描周期內为1。CPU进入STOP模式时,已有的连接被断开。
3)LEN是要发送的数据的最大字节数。LEN为默认值0时,发送用参数DATA定义的所有的数据。
如图6-4中TSENDC的参数DATA的实参P#DB4.DBX0.0 BYTE 100是数据块Data中的数组ToPLC2的绝对地址。TRCVC的参数DATA的实参P#DB4.DBX100.0 BYTE 100是数据块Data中的数组FromPLC2的绝对地址。
4)COM RST(Bool)为1时,断开现有的通信连接,新的连接被建立。如果此时数据正在传送,可能导致丢失数据。(www.xing528.com)
5)DONE(Bool)为1时表示任务执行成功,为0时任务未启动或正在运行。
6)BUSY(Bool)为0时任务完成,为1时任务尚未完成,不能触发新的任务。
7)ERROR(Bool)为1时执行任务出错,字变量STATUS中是错误的详细信息。
指令TRCVC的参数的意义如下:
8)ENR(Bool)为1时,准备好接收数据。
9)CONT和ENR(Bool)均为1时,连续地接收数据。
10)DATA(Variant)是接收区的起始地址和最大数据长度。
11)LEN是接收区的字节长度,为0时用参数DATA的长度信息来指定接收区的字节长度。
RCVD LEN是实际接收的数据的字节数。
其余的参数与TSENDC的相同。
3.发送数据区与接收数据区
生成通信双方发送和接收100B的数据。保存PLC1的名为Data的全局数据块(DB4),不能设置为“仅符号访问”。在DB4中生成保存要发送的数据的数组ToPLC2,和保存接收到的数据的数组FromPLC2。它们分别有100个字节元素,有断电保持功能。PLC2的DB4中两个数组的名称为:ToPLC1和FromPLC1(见图6-5)。
图6-5 定义数组
在通信主体的设备视图中,设置MB0为时钟存储器字节,MB1为系统存储器字节。在首次扫描循环时,M1.0的常开触点接通,将两块CPU的发送数据区的100B数据分别初始化为16#AA(见图6-6)和16#55,将接收数据区的100B数据清零。用周期为1s的时钟脉冲M0.5的上升沿将要发送的第一个字节DB4.DBB0加1(见图6-7)。
图6-6 OB1中初始化发送/接收数据区的程序
为了监控通信是否成功,可以将两块CPU和计算机的以太网接口连接到普通交换机上,用监视表监视两台CPU的DB4中接收到的数据。
如果没有交换机,可以将接收到的不断变化的第1个字节DB4.DBB100传送给QB0(见图6-7)。如果通信正常,双方的QB0的值应每秒加1。
图6-7 OB1中的梯形图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。