西门子TCP开放式通信协议简单介绍
1.0 它是一种开放式通信协议,只要适用于与第三方设备的通信连接,如PLC,HMI,远程IO等第三方设备。
西门子TCP通信协议的定义
2.0 TSEND_C:通过以太网发送数据,有效性以下“TSEND_C”说明适用于 S7-1200 CPU 固件版本 V4.0 及更低版本。
说明TSEND_C”指令设置并建立 TCP 或 ISO-on-TCP 通信连接。设置并建立连接后,CPU 会自动保持和监视该连接。参数 ConNECT 中指定的连接描述用于设置通信连接。
该指令异步执行且具有以下功能:
2.1设置并建立通信连接:
通过 CONT=1 设置并建立通信连接。连接成功建立后,参数 DONE 将置位为“1”并持续一个周期。CPU 进入 STOP 模式后,将终止现有连接并移除已设置的连接。要再次设置并建立该连接,需要再次执行“TSEND_C”。有关可能的通信连接数量信息,请参见 CPU 的技术规范。
2.2 通过现有通信连接发送数据:
通过参数 DATA 可指定发送区。这包括要发送数据的地址和长度。请勿在 DATA 参数中使用数据类型为 BOOL 或 Array of BOOL 的数据区。如果在参数 DATA 中使用纯符号值,则 LEN 参数的值必须为“0”。
2.3 在参数 REQ 中检测到上升沿时执行发送作业。使用参数 LEN 可指定通过一个发送作业发送的大字节数。发送数据(在参数 REQ 的上升沿)时,参数 CONT 的值必须为“1”才能建立或保持连接。在发送作业完成前不允许编辑要发送的数据。如果发送作业成功执行,则参数 DONE 将设置为“1”。参数 DONE 的信号状态“1”并不能确定通信伙伴已读取所发送的数据。
2.4 终止通信连接
参数 CONT 置位为“0”时,即使当前进行的数据传送尚未完成,也将终止通信连接。但如果对“TSEND_C”使用了已组态连接,将不会终止连接。
将 COM_RST 参数设置为“1”时,可以随时重置当前建立的连接或当前数据传输。这会终止现有通信连接并建立新连接。如果再次执行该指令时正在传送数据,可能会导致数据丢失。
要在执行 (DONE = 1) 后再次启用“TSEND_C”,使用 REQ = 0 调用一次指令。
说明
编程连接时的技术支持
如果在程序块中选择通信指令 TCON、TSEND_C 或 TRCV_C 创建类型为 TCP、UDP 或 ISO-on-TCP 的连接,并为这些连接分配参数,则可使用连接参数分配支持功能。
在程序编辑器的巡视窗口中,可进行连接参数分配。
3.0 建立TCP网络需要的软硬件明细如下:
3.0.1.两台1200系列PLC控制器,版本必须在4.0左右,笔者的是两台1215DCDCDC控 制器(实际可以不需要硬件,使用TIA的仿真可以完成数据传输);
3.0.2 博途TIA软件一个(可以是V14,V15/V16)都可以;
3.0.3 笔记本或台式电脑一台;
3.0.4 以太网线一条。
满足以上条件才可以组建TCP协议网络。
4.0 组态两台PLC硬件及网络连接
4..0.1 组态PLC硬件如下图所示:
组态1#PLC打开“OB1”建立“一个全局数据块”定义为“发送”数据,取消“优化访问块”。如下图所示:
按以上方式方法建立1#2#PLC的“发送”“接收”数据块。
4.0.2 .1#PLC的指令块“TSEND_C”(正在建立连接和发送指令)的组态,首先把“TSEND_ C”拖拽到“OB1”程序中,点击数据块中“蓝色小按钮”弹出组态对话框,如下图所示:
4.0.3.1#PLC在程序“OB1”中“TSEND_C”指令块管脚的定义如下图:
5.0. 组态2#PLC,拖拽指令块“TRCV_C”到“OB1”中,点击指令块中蓝色图标组态2# PLC数据连接,如下图所示:
5.0.1 2#PLC接收指令块管脚定义如下图所示:
忘记标“CONT”管脚定义:它控制着通信数据连接状态,以2进制来表示,“1”表示通信进行时,“0”表示通信断开时。其实PLC1不光做发送,也可以做接收,同理,PLC2也不光可以接收数据,还可以发送数据,它们的发送接收方式方法同我在这里讲的一样,只不过把顺序倒过来而已,这里不再阐述。
以上简单介绍西门子TIA平台上两台1200PLC/TCP通讯,对想学西门子PLC通讯的朋友多一份参考