分享

AB PLC和Siemens PLC通讯-无需协议网关

 沈峰dcmjx7q995 2019-02-22
JZGKCHINA


背景:传统西门子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协议,主要从事工业安全渗透和防御。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多