一 | S7-1200 与 s7-1200 CPU TCP通讯实例 |
S7-1200 与 S7-300/400/1200/1500 之间的以太网通信可以通过 TCP 协议来实现,使用的通信指令是在双方 CPU 调用 T-block (TSEND_C,TRCV_C,TCON,TDISCON,TSEND,TRCV) 指令来实现,通信方式为双边通信,因此 TSEND 和 TRCV 必须成对出现。本期内容通过实例讲解如何实现s7-1200 与 s7-1200 TCP通讯(同样适用于s7-1500 CPU);
硬件:
PLC_1: CPU1214C DC/DC/DC, 固件版本V4.5,IP:192.168.10.100PLC_2: CPU1214C DC/DC/DC, 固件版本V4.5,IP:192.168.10.101软件:
TIA PORTAL STEP7 V17所完成的通信任务:
PLC_1发送32字节数据至PLC_2PLC_1接收来自PLC_2的32字节数据S7-1200之间 TCP 通讯,可以分2种情况来操作,具体如下:
两个S7-1200在同一个项目中操作(同一个项目配置同两个项目一致,不再赘述)两个s7-1200不在同一个项目操作二 | 两个项目中的s7-1200 CPU之间TCP通讯(附样例程序) |
本期内容通过不在同一个项目的两个s7-1200来讲解如何实现CPU之间TCP通讯,步骤如下:
在TIA Portal新建两个项目(过程不再赘述),并配置CPU 以太网通讯参数;
image-20240611140514757为了方便编程使用,一般在使用s7-1200或s7-1500时候会激活启用系统存储器字节和启用时钟存储器字节;
image-20240611141157158在PLC_1中新建FC功能块,并调用TCON通信指令并配置背景数据块(不要忘记在Main(OB1)程序中调用该FC);
image-20240611142013261“TCON”指令参数说明如下:
使用“TCON”指令可设置并建立通信连接。设置并建立连接后,CPU 将自动持续监视该连接。“TCON”为异步执行指令。
为参数 CONNECT 和 ID 指定的连接数据用于设置通信连接。要建立该连接,必须检测到参数 REQ 的上升沿。成功建立连接后,参数 DONE 将被设置为“1”。
点击”开始组态“按钮,分配连接参数;由于PLC_2不在同一项目中,因此伙伴选择“未指定”;在本地“连接数据”的下拉菜单中选择“新建”配置"connect"参数
image-20240611145543961注:连接数据在新建后会自动生成一个新的DB块,DB块地址可以自定义
连接参数说明:
连接类型 | 选择通信协议为 TCP( |
连接ID | 连接的地址 ID 号,这个 ID 号在后面的编程里会用到 |
连接数据 | 创建连接时,点击“新建”,创建本地连接数据。 |
主动连接设置 | 选择本地 PLC_1作为主动连接 |
地址详细信息 | 定义通信伙伴方的端口号为:2000; |
注:连接数据,点击新建后可根据需要修改DB的名称和索引号,以保证程序的一致性;
image-20240612141631463新建DB块用于TCP通讯,参数部分及数据区;(不要忘了取消优化块访问)
image-20240611150034063为实现发送数据至PLC_2需要调用TSEND指令(需指定背景数据块),并配置接口参数,REQ采用1HZ脉冲;
image-20240612142409145注:
接口LEN为发送的最大字节数(1200最大8192字节,1500最大65536字节)Data为指向发送数据的指针,指针大小与接收端的指针大小需要一致;为实现接收PLC_2的发送数据,需要调用TRCV指令(需指定背景数据块),并配置接口参数;
image-20240612143456456注:
接口LEN为接的最大字节数(1200最大8192字节,1500最大65536字节),与发送的最大值一致同样的方式在PLC_2中配置“TCON”,通信指令(具体过程不再赘述),配置结果如下:
image-20240612144338581注:
在PLC_2中伙伴即需要通讯的对象,填入PLC_1的地址;本地端口对应PLC_1中伙伴端口地址;“TSEND”, "TRCV"通信指令(具体过程不再赘述),配置结果如下:
TSEND配置vmware_nXYn5LQmNJ配置完成,下载并监控如下所示;
image-20240612163001595注:TIA Portal中所有指令块应用,按“F1”即可查看详细帮助文件 ;