S7指令中的PUTGET或者BSENDBRCV的选择(BSENDBRCV仅支持3004001500)
1. 背景
- 最近用一个300PLC做S7通信的时候,因为交互的数据量有1024个bytes.这才意识到put get在数据量上的限制。以及S7大数据传输用到的BSEND/BRCV。
2. S7支持的指令
- 在PLC里,能基于S7协议用于数据交换的指令如下(S7 300/400下描述):
- 其中值得注意的有几点:
- put/get无需通信伙伴用户程序中的任何其它通信函数,意思是使用putget单边通信的时候,另一边设置只需要打开使能开关就行,不用配置(连远程ID都可以不用填写)
- BSEND/BRCV:互为交互对象,需要相互交接,也需要远程设备信息
- PLC的start stop等可以通过S7协议做远程控制。
3. PUT/GET的应用
- GET
- PUT
- 当写完put/get程序之后,
连接
处会自动生成一条连接:.
03
标记为黄色的含义是表示默认为主动连接,用03.01
是可以通信成功的。若不需要可以换成其他的TSAP号。
- 注意点
- 伙伴IP是需要填入的
- 如果
子网
栏报错,请去添加新连接
新建一条子网 - 伙伴TSAP可以填的内容有:
- S7-300集成PN或CP,填03.02
- S7-400集成PN或CP,填03.XX, XX为400PLC插槽号
- S7-1200集成PN口,填03.00或者03.01
- S7-1500集成网口或者CP,填03.01
- 本地ID,不要和其他连接重复就行
- PUT/GET 触发管脚用脉冲
- 交互DB非优化
- PUT GET 设置打开
4. put/get bsend/brcv 能支持的最大数据量
- 以及BSEND/BRCV支持的PLC类型,1200不支持USEND/URCV/BSEND/BRCV
5. S7相关指令中的几个重要参数
- 对于bsend和brcv。它们属于
双端组态通信
指令
6. bsend/brcv应用
- 更新:对于1200系列PLC而言,是没有办法做到大数据量的双边S7通信的,它仅支持最大不超过160Bytes*4的用户数据,以下图片中的1200相关的内容请忽略或者替换成1500系列PLC。如果实在需要在1200上做数据量偏大的传输,可以试试用TCP/IP协议(TSEND/TRCV)
- 连接ID如图:
在1200端仍然需要建立一套BSEND/BRCV程序和数据DB。- 1200不支持双边的S7通信(BSEND/BRCV),只有300/400/1500系列PLC才支持。
- 上述在300PLC上建立了一套BSEND/BRCV指令,同样的,在另一个PLC上,比如1500上也需要建立一套相应的指令,并填入相应的管脚:
S7指令中的PUTGET或者BSENDBRCV的选择(BSENDBRCV仅支持3004001500)
http://example.com/2024/07/21/S7指令中的PUTGET或者BSENDBRCV的选择(BSENDBRCV仅支持3004001500)/