西门子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 或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左右。笔者有两个1215DCDCCDC控制器(实际上不需要任何硬件,使用TIA仿真即可完成数据传输);
3.0.2 可接受One Portal 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”的引脚的定义:它控制通信数据连接状态,以二进制表示,“1”表示通信正在进行,“0”表示通信断开。事实上,PLC1不仅可以发送,还可以接收。同理,PLC2不仅可以接收数据,还可以发送数据。它们的发送和接收方法和我这里讲的一样,只是顺序颠倒了。进一步阐述。
以上简单介绍了西门子TIA平台上两台1200PLC/TCP之间的通信。为想学习西门子PLC通讯的朋友补充参考。由于时间仓促以及作者自身水平有限,文章中难免存在不完善或错误的地方。希望各位朋友的批评和指正!