如果连接主体是S7的1200和300/400,可以使用以太网中ISO-on-TCP、TCP和S7连接方式。
当采用ISO-on-TCP和TCP连接,S7-1200调用TSENDC和TRCVC指令。如果S7-300/400使用以太网模块,则调用AGSEND和AGRCV指令。当采用PROFINET接口,则调用OPENIE通信指令。
当采用S7连接,S7-1200只能作服务器,不需要对它的S7通信做任何组态和编程的工作。S7-300/400需要建立S7单向连接,调用PUT和GET指令来实现通信。
接下来我们以1200的ISO-on-TCP协议通信为例讲述其组态及编程的方法。
1)在STEP 7 Basic中新建一个名为“ISO1200”的项目,单击项目树中的“添加新设备”,添加一块CPU 1214C。
名为ISO1200的用户程序与项目“ISO-on-TCP”中PLC1的设置基本上相同。两者主要的区别在于项目“ISO1200”中只有一台PLC。
2)在主程序OB1中调用TSENDC和TRCVC,将自动生成保存连接的组态参数的连接描述数据块PLC1ConnectionDB、背景数据块TSENDCDB和TRCVCDB。TSENDC和TRCVC的参数与图6-4中的相同。
其中,OB1程序的内容如图6-24所示。
图6-24 OB1指令
生成名为Data的全局数据块(DB4)(其内容见图6-25),不能设置为“仅符号访问”。在DB4中,生成保存要发送的数据的数组To300和保存接收到的数据的数组From300。
(www.xing528.com)
图6-25 DB4内容
在图6-26中TSENDC的参数DATA的实参P#DB4.DBX0.0 BYTE100是数据块Data中的数组To300的绝对地址。TRCVC的参数DATA的实参P#DB4.DBX100.0 BYTE 100是数据块Data中的数组From300的绝对地址。
图6-26 项目视图
3)选中指令TSENDC,然后选中下面的巡视窗口中“属性”→“组态”选项卡右边的“连接参数”组。(见图6-27)。
设置通信伙伴(S7-300)的“端点”为“未指定”,IP地址为“192.168.0.2”,连接类型为“ISO-on-TCP”,由S7-1200主动建立连接。本地与伙伴的TSAP分别为“1200”和“300”。
在PLC1的设备视图中,设置MB0为时钟存储器字节。在首次扫描循环时,将发送数据区的100B数据初始化为16#AA(见图6-6),将接收数据区的100B数据清零。
用周期为1s的M0.5的上升沿将要发送的第1个字节DB4.DBB0加1(见图6-7)。同时将接收到的第一个字节DB4.DBB100传送到QB0。如果通信正常,QB0的值应每秒加1。
图6-27 组态ISO-on-TCP连接
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。