恭喜,你发布的帖子
发布于 2024-07-14 10:56:13
20楼
是的。MB TCP服务器的远程IP要设为0.0.0.0(这个设置意指任意IP的访问。)
MB_TCP服务器虽然是被动响应,但它是可以主动断开本次连接的。
过程直到 状态字STATUS为 7003(存在一个扫描周期)为止。
这种功能需求是会有的。
如下场景:
假设用 S71200做一种小机器,1200 PN下面有俩PN驱动器和一点动作装置。好比说:弹簧卷绕制作设备吧。
材料就是一卷钢丝。(不同的机器,钢丝强度不同,功率也不同。)
工艺参数就那几项:直径、节距、圈数、加工数量等。
这机器不大,当前有几台,之后也可能增加数十台。
这些机器作为客户端,可以向指定的IP服务器申请加工单。然后经数小时加工,完成后,再申请下一个加工单。完成按需(订单)生产。
这种就是偶发的、动态的连接。
当然了,客户端也需要对DisConnect引脚编程。需要时,向指定的IP服务器发起连接请求。完成后,断开连接。
在此过程中,需要不断查询功能块的STATUS。
这样,不管是我拥有几个这个设备,只要连接到该局域网,都能接订单。
对么?
要是采用固定连接,那就要重新组态?那么增加机器?机器维护?更换?
作为功能来说,MB-TCP SERVER的确是可以主动断开连接的,实际上就是拒绝服务,但实际通信应用中,SERVER是不可以主动断开连接的,因为SERVER无法知道本次连接的CLIENT有几个通信任务,什么时候可以结束通信服务,因此只有CLIENT在对一个SERVER访问的任务都结束后是可以主动断开连接的,但SERVER却不行。
此外,CLIENT之间是背靠背的,无法协调的,在多个CLIENT对同一个SERVER的周期性访问的场景下,如果没有特殊的手段其实就是单纯的竞争关系,通信的频率,网络的结构与性能会直接影响到某个CLIENT连接到SERVER的概率。
所以,在西门子实际的通信应用中,并不建议用一个逻辑SERVER对多个CLIENT的访问,这是多个项目实践下来的经验教训
请填写推广理由:
分享
只看
楼主