故事作者:元顺

最近创作

看看TA的故事

【西门子技术π-PLC通信原理探秘】Socket发送漏发消息的原因分析

已锁定

元顺

  • 帖子

    3
  • 精华

    0
  • 被关注

    12

论坛等级:游士

注册时间:2012-05-07

普通 普通 如何晋级?

【西门子技术π-PLC通信原理探秘】Socket发送漏发消息的原因分析

1116

3

2020-05-28 09:24:16

1.应用的基本信息 

1.1基本应用信息描述(您所经历过的现场或案例,描述设备运行的异常情况,语言简要、故障要点突出,现象表达清楚,涉及具体设备的版本信息,网络规模,主要产品列表等) 

     我在项目中应用的Siemens 1516 PLC V2.6 , 通过socket通信的方式,向上位机发送消息,在100ms时间中断OB30里,向发送缓冲区写入数据,在OB1里检测发送缓冲区是否有数据,如果有数据,将数据加载至TSEND的发送缓冲区,并执行发送命令。遇到的问题:通过上位机的接收记录分析发现,存在漏发消息的情况,并且可以重现;

 2.故障的检测和解决 

2.1 故障或问题分析(根据故障或问题,进行分析,从而提出潜在的一些解决方案用于解决该问题)

      漏消息的原因可能有:

      1:写入缓冲的数据过大,消息缓存区被覆盖重写;

      2:PLC程序周期过大,执行发送的速度小于写入的速度;

      3:PLC设定通信循环负荷的影响;

      4:上位机处理延迟;

      5:时间中断OB30执行时对主流程OB1中发送指令造成了影响;

 2.2故障或问题处理(根据分析各种导致故障的可能性,逐步排查,描述您解决此问题的操作步骤,最终确认原因,排查过程有条理,思路清晰)

       根据2.1中分析,逐一分析排查。

       测试工具:socket助手;          

                    

3.实践联系理论

       TSEND指令为异步指令,执行过程可能会延续到夸多个周期的调用。这要求,在发送指令为完成前(未收到Done=1),发送缓存要求保持不变,而时间中断里的写入操作,可能对这部分产生了影响。

4.经验总结 

4.1遗留的问题(故障排查后,是否对故障或者解决问题的方式仍然有些疑问或者不理解的地方)

     时间中断对异步执行指令的影响,有疑问,因为时间中断中写入的数据并非直接写入TSEND指令对应的buff。 

4.2改进方法(解决问题后,根据原因结果,针对故障现象可以采取的预防措施,技术要点等。可以提出更好的解决方式或建议)

     遇到异步执行的发送指令时,写入和发送操作放置主循环OB1中执行。 

【西门子技术π-PLC通信原理探秘】Socket发送漏发消息的原因分析 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。