1. 背景
- 最近用一个300PLC和1200PLC做S7通信的时候,因为交互的数据量有1024个bytes.这才意识到put get在数据量上的限制。以及大数据传输用到的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程序之后,
连接
处会自动生成一条连接:
- 注意点
- 伙伴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 enable管脚用脉冲
- 交互DB非优化
- PUT GET 设置打开
4. put/get bsend/brcv 能支持的最大数据量
4. S7相关指令中的几个重要参数
- 对于bsend和brcv。它们属于双端组态通信指令
5. bsend/brcv应用
- 连接ID如图:
- 在1200端仍然需要建立一套BSEND/BRCV程序和数据DB。