工作中遇到 wincc 需要与 75 个 S7-200SMART 通讯,每个 S7-200SMART 需要有 1200多个字 节传给 wincc。
经过与西门子工程师分析讨论做出如下方案:wincc 选用 wincc7.2+upd13,选择一台S7-1500 CPU1511-1PN 做主站,S7-1500 使用 S7 通讯(put,get 指令)与S7-200SMART 通讯。因为 S7-1500 CPU1511-1PN 的 s7 连接资源只 有 54 个,而我们需要通讯的S7-200SMART 有 75 个,选择 1500 与 54 个 S7-200SMART通讯,选择其中的21台s7-200smart通过PUT/GET指令与剩余的21台S7-200SMART 通讯再传给S7-1500。
以下为过程:
01
TIA 软件中需要做的项目内打开设备和网络,选择“网络视图”点选“连接”选择“S7” 。点击CPU 以太网口,右键属性,设定 PLC 的 IP 地址。
02
右键 PLC,选择“添加新连接”,选择添加,需要与多少 PLC 通讯就添加多少个,软件会 自动分配 PLC的本地 ID 地址,这个地址很重要,后面用 PUT/GET 指令的时候需要用到这个 地址。定义每个连接的属性。属性中要定义 IP地址,需要与主 PLC 在一个网段,为了 好区分和直观,还可以自己定义连接名称。这样连接就完成了。
03
以上完成后,组态部分就完成了。为了通讯,我们还需要在程序里面对需要传递的数据做 GET/PUT 程序。
04
对于同一个 S7 连接子站的 GET/PUT 指令,同一时间只能触发一个,如果一个指令没有完成,触发了一个指令,则会报错;对于不同 S7 连接子站的GET/PUT 指令则没有这样的要求,之间不会有干扰和联系。
05
由于每一个 S7 连接传递数据在 1200 字节左右,但经过试验,每条指令多能传递 220个字节,传递字节超过这个数量,则指令会报错。我一个 S7 连接用了 5 个 GET 指令, 1 个 PUT 指令(其中 21个站还通过GET/PUT 指令读取了21 个站的数据,这 21 个 站与主站的通讯数据是正常的二倍,是 10 条GET,2 条 PUT)。
其中条指令由系统状 态 M1.3“clock—2HZ”触发,条指令的完成位触发第二条指令,第二条指令的完成位触发第三条指令,以此类推。后让所有的错误位置为一个脱机状态,有错误位则认为脱机,数据不可用。
06
以下为 PUT/GET 指令帮助文件内容。
本连接比较简单,指令也比较简单。做一个连接一个指令非常容易。多条 指令多个连接的时候一定要注意指令’GET/PUT的背景数据块,一定不相同,否 则会造成接收到或者发送出去的数据是错误的。我的做法是建了一个功能块,功能块里面用的多个 GET/PUT指令选择的都是不 同的多重背景数据块。对于多个连接用自己的背景数据块调用功能块。以下是我每个站的背景数据块: