恭喜,你发布的帖子
发布于 2026-04-07 11:40:49
8楼
启动OB与硬件标识没啥关系,异步指令在事件触发程序中执行肯定是有问题的,楼主还是没搞清楚原因。
补充一下相关信息,今天又测试了一下.
通讯相关的轮询机制很早以前做的程序,老版的通讯指令,一直放在startup中调用,没有问题,包括今天也在4.7固件的1200G1中测试通过.
新版的通讯指令,comm_load放在startup中加载确实不行,1200G1/G2都不行,不同的是G1不会报警,只是不工作.G2是Error直接红灯加报警.
这就是新老版本通讯库的差异和硬件固件无关.
老版本的库官方就是推荐放在Startup OB中调用的.参见https://support.industry.siemens.com/cs/document/90578932/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87modbus%E5%8D%8F%E8%AE%AE%E5%AE%9E%E7%8E%B0s7-1200%E4%B8%8Es7-200%E9%80%9A%E8%AE%AF?dti=0&lc=zh-CN
新版的库也写了推荐在OB1中调用,参见指令帮助.
问题其实发帖后就解决了,从结果推测原因.就是startup OB没有完整执行完comm_load,因此硬件标识符没有被绑定到send_ptp的port口,modbus指令库本质也是调用send_ptp发送报文.放在主OB内,通过done来完成初始化才是新版指令的正确用法.
请填写推广理由:
分享
只看
楼主