背景:传统西门子PLC和AB PLC通讯一般会采用通讯网关,因为西门子PLC采用S7协议而AB PLC采用CIP协议,两种不同协议的情况下需要协议网关转换才可以通讯。随着PLC领域的更加开放和融合,西门子PLC和AB PLC均提供open tcp通讯方式,所以市面上就出现利用open tcp接口来完成自定义协议的两种PLC的通讯,但是这种通讯方式需要用户对于TCP通讯的机制十分熟悉,比如三次握手,然后再自定义通讯套接字的方式。让自动化工程师觉得十分鸡肋,为什么说是鸡肋呢?第一 这种方式确实物美价廉,因为无需采购协议网关;第二就是需要自己编程和组织通讯,从而造成大量通讯不稳定。 这篇文章就是提供两个厂商的open tcp库的方式,这样既可以降低网关采购费用又可以保证通讯的稳定性,对于自动化工程师只需按照文章调用提供的库体就可以完成稳定,快捷的西门子PLC和AB PLC的通讯。 AB的AOI库,西门子的FB功能块 硬件环境: AB:1756-L72 固件V21.11,1756-EN2T 固件V.10 Siemens:S7 CPU1511-1 PN,固件 V1.6 软件环境: AB:RockwellAutomation Studio 5000 Logix Designer Version 21.11 Siemens:SIMATICSTEP 7 Professional V14 通讯库: AB:RA_T_COMM_AOI_v0.1.zip Siemens:S7_T_COMM_FB_v0.1.zip 通讯字的占用和分配: AB: Siemens: 通讯库的功能块介绍: AB的T_COMM AOI功能块介绍: Siemens T_COMM FB1功能块介绍: 设置ABT_COMM通讯库: 首先设置AB的AOI功能块,因为AOI调用6条msg指令,而这些指令必须被初始化。6条初始化指令设置如下: 所有msg指令必须指明通讯路径,就是如何从背板到EN2T卡然后再到西门子PLC。 CommData是指通讯数据的缓冲区长度,它不能小于100 byte长度,所以请创建一个SINT[100]的数组 使用T_COMM通讯库: 首先打开西门子编程环境 TIA V14,然后选择打开库 选择文章所提供的T_COMM库 然后所拽到你的项目中,并且放置在你的梯形图中 然后你再打开Studio 5K编程环境,选择导入AOI库 然后选择文章所提供的AOI库提 然后确认AOI库提是否已经导入,并自动形成自定义数据类型 选择西门子PLC为Server还是为Client通讯方式,如果是设定西门子PLC为Client的情况,T_COMM 两边的库的参数设置如下: 如果设定西门子PLC为Server也就是监听的情况,T_COMM两边库的参数设置如下: 最后两边PLC均把程序和T_COMM库,下载到PLC中运行,就可以通讯了。 TIA选择下载: Studio5K选择下载: 通讯库下载: S7-FB-T_COMM.zip链接:https://pan.baidu.com/s/16n_niZsXMuwwAGXJFXISLA 提取码:**** RA-AOI-T_COMM.zip链接:https://pan.baidu.com/s/1AzPSDVQfcSiQ3WXduc1K8w 提取码:**** 提取码请加入剑指工控技术群,然后跟管理员索取!!! 作者简介:剑思庭,工控安全研究员,熟悉S7协议和CIP协议,主要从事工业安全渗透和防御 ![]() |
|免责声明|本站介绍|工控课堂
( 沪ICP备14007696号-3 )|网站地图
GMT+8, 2020-2-9 18:17 , Processed in 0.046978 second(s), 42 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.