西门子工业支持中心,以专业共创价值!

  1. 移动端入口
    • 工业服务小程序
    • 支持中心移动端首页
    • 智能小西-智能问答与在线预约
    • SIEMENS工业找答案小程序
    • 工业培训与认证
    • 西门子工业1847俱乐部
    • 自动化So酷
  2. 签到有奖
  3. 登录后可享:

    学技术视频
    查海量资料
    论话题经验
    问常见问题
    立即登录

    还没有账号?

    立即注册
  4. 会员
  5. 消息

    登录后可查看消息记录

    立即登录
  6. 收藏

    登录后可查看收藏记录

    立即登录
  7. 历史

    登录后可查看历史记录

    立即登录
  8. 公告
西门子工业技术支持中心
搜索

热搜词:1847工业学习平台过程调节器选型与电脑连接

电子杂志

  • 技术支持
    • 首页
    • 智能小西-自动预约
    • 风驰卡
    • 产品入门
  • 下载中心
    • 首页
    • 售前文档(样本、宣传册等)
    • 售后文档(FAQ、手册等)
  • 工业学习平台西门子1847工业学习平台
    • 首页
    • 了解会员权益
    • 立即开通1847会员
  • 培训与认证
    • 首页
    • 教室及直播课
    • 取证训练营
    • 在线自学课
    • 认证证书查询
    • 培训伙伴验证
  • 技术论坛
    • 首页
    • 最新发帖
    • 精华帖
    • 发新帖
  • 找答案
    • 首页
    • 已解决问题
    • 精华常见问题
    • 发布新问题
  • 售后服务
    • 首页
    • 提交服务需求
    • 查询服务进程

西门子工业官方商城西门子官方商城

西门子中国
  • 工业自动化
  • 驱动技术
  • 客户服务
  • 冶金技术
  • 行业市场解决方案
  • 工业支持中心
工业支持中心
  • 我的支持中心
  • 下载中心
  • 全球技术资源
  • 1847工业学习平台
  • 产品入门新手必读
  • 找答案
  • 技术论坛
  • 售后服务
  • 网络资源新手必读
  • 高级搜索
技术论坛
  • 论坛公告
  • 用户指南
  • 用户排行榜
  • 热门帖子
  • 最高收藏帖
  • 精华帖
  • 分享帖
  • 高端推荐帖
  • 在线用户列表
  • 论坛管理
咱工程师的故事 / 网友专栏
【西门子技术π-PLC通信原理探秘】Socket发送漏发消息的原因分析
 • 产品分类
自动化系统
    SIMATIC S7-1500系列 
    SIMATIC S7-1200系列 
    SIMATIC S7-200
    SIMATIC S7-200 SMART 
    SIMATIC S7-300/400 
    SIMATIC S5
    通信与网络组件
    Profinet技术开发专区
    工业边缘计算
    SIMATIC WinCC / Panel 
    SIMATIC WinCC OA (原PVSS)
    DCS/SIMATIC PCS7
    IPC/PG
    LOGO!
    物联网(IOT)
    工业电源
驱动技术
    MicroMaster 
    MasterDrives
    直流调速器
    电机
    SIMOTION
    SINAMICS 
    驱动技术综合产品
数控系统
    SINUMERIK 
    SIMODRIVE
低压电器
    低压电器
传感器与通讯
    过程仪表
    分析仪器
    工厂传感器
谈天说地
    谈天说地
 • 咱工程师的故事
咱工程师的故事
    网友专栏 
    工程师随笔
1847大咖专栏
    电气传动系统漫谈
    崔工谈博途与PLC
    漫谈SCADA进阶之路
    运动控制产品天地
    聊聊收放卷
    运动控制应用天地
    驱动诊断
    西家讲师教学精要
    漫谈过程自动化
    PROFINET工业通信详解
    冯工聊工业网络
    EMC问题及处理
特别专题
    专家大讲堂课后探讨
    西家技术派
    专家诊断专栏
    西家传动
    自动化so酷
    西门子工业1847俱乐部
 • 培训与认证答疑专区
培训与认证答疑专区
    S7-1200精英训练营
    WinCC精英训练营
    S7-200SMART精英训练营
    小型自动化系统
    V90精英训练营
    G120变频器精英训练营
    PLC编程精英训练营
 • 服务合作伙伴专区
服务合作伙伴专区
    西门子工业技术π圈
    Networks and Communication
    GMC蓝黄带考试-G120
    GMC蓝黄带考试-V90
    GMC 合作伙伴专区
将好帖分享好友
复制链接

扫码分享好友
任选多种好礼

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

  • 作者: 元顺发布时间:2020-05-28 09:24:16浏览次数:937次 锁帖 回复本帖
  • 简介 更多简介
  • 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助手;          

                        5月28日(2) .png

    3.实践联系理论

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

    4.经验总结 

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

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

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

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

    推荐帖推荐理由:(推荐人:)  修改
    有帮助(1)
    将好帖分享好友
    复制链接

    扫码分享好友
    任选多种好礼



  • 1847会员 Zane:3楼2020-08-09 13:09:33
  • 这要看网络的状况了,非实时通信,延迟是很正常的事情,延迟的时间也是不确定的,比如网络里正好有大报文在发送,没有优先级的通信就只能等待,另外工业现场还有干扰的问题,都会造成通信延迟,100ms对于这些延迟可能都不算啥,这时就会导致数据被覆盖。

    我不认为,楼主把数据拷贝到发送缓冲区的操作放到OB1执行就是解决问题了。

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(2)

      
  • 1847会员 赵欣:2楼2020-05-29 10:26:33
  •  @元顺 :

    接收端的接受周期是多少?如何判断当前无发送任务?依靠什么信号?

    假如接收端的接收周期与发送周期类似,都很少。那么理论上不会出现这样的问题。我们来看看。

    1,100Ms的OB30装入新数据,然后OB1检测到新数据的存在,最多两个周期也就是10ms,那么发送50个字节,最多2个周期,10ms。那么就是20ms就结束了。

    2,我们等待下一次新的数据的写入,需要等待100ms,在重复第一个的任务动作。从哪方面考虑,都不会出现漏发。

    出现漏发是如何出现。如果程序上没有问题的话,我们来看看何时漏发。

    1,如果接收端的接收周期很慢,例如50分钟,我们举一个极端的例子,如果每隔100ms,都检测到数据写入,这样说明每隔100ms都会写入数据,我们不去详细计算缓冲区多长时间占满,但是通过这个例子,当接收和发送的缓冲区全部占满,那么再次出现100ms的数据写入,并且有写入多次,必然会出现漏发的情况,因为数据被不断的覆盖了。

    2,当然还有一种情况,就是发送时间很长,比如我们发送50个字节用了500ms,当然不存在这种情况,毕竟1516,我仅仅是举例子能够让你理解,那么此时每隔100ms的新数据,自然不能被发送,因为同数据被不断的覆盖了。

    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(1)

      
  • 1847会员 赵欣:1楼2020-05-28 13:59:59
  • @元顺 :

    我试着理解一下你的案例的这句话。“在100ms时间中断OB30里,向发送缓冲区写入数据,在OB1里检测发送缓冲区是否有数据,如果有数据,将数据加载至TSEND的发送缓冲区,并执行发送命令。“

    OB30里面编写的程序就是往DB中写入数据,准备发送的数据。

    OB1中编写TSEND,当发送DB数据发生变化,说明有新数据,然后再发送数据。

    至于漏发,指的是TSEND并没有把每次的变化的数据发送出去。是这样吗?或者说我想知道是如何触发TSNED的使能位。

    如果是我说的那样,还有3个问题。1是发送的数据量未知,2是CPU的循环周期未知,3是接收端的接收周期是多少?

    如果我猜测正确的话,例如CPU周期是2ms,程序不多的情况下,接收端的接收周期也很小,比如10ms,那么8k数据最多30ms就能刚接收完毕,不会出现上述所处的漏发。

    只有CPU的周期很长,例如200ms,或接收端的周期很长例如200ms,那么才会出现上述的情况.说白了是时间匹配的问题。


    精华帖版主置评:
    推荐帖推荐理由:(推荐人:)
    有帮助(1)
  • 1847会员 赵欣回复: 元顺 2020-05-29 12:38:17
  • 我知道,问题出现在哪里,我们需要讨论一下。


      
  • 元顺回复: 1847会员 赵欣 2020-05-29 10:40:52
  • 接收端周期这个原因可以排除掉,用的socket助手,最后解决这个问题的办法是将写任务放在OB1里


      
  • 1847会员 赵欣回复: 元顺 2020-05-29 10:15:16
  • 接收端的接收周期是多少?


      
  • 元顺 2020-05-28 15:09:11
  • 发送数据量50个字节。CPU周期5ms,发送数据条件:当前无发送任务 检测到OB30往DB里已经写入数据。


      

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

      复制链接

      扫码分享好友
      任选多种好礼

    • 收藏

    • 有帮助

    • 回复
    回复
     *帖子内容
    上传附件要求

    1. 文件大小:上传文件的大小请限制在1M以内。

    2. 文件格式:请不要上传.exe文件,系统支持的格式有:.jpg, .jpeg, .pdf, .gif, .zip, .rar, .doc,.docx, .xls,.xlsx, .ppt, .mp3, .wma, .wmv .asf, .avi, .bmp, .png, .txt, .7z

    发布帖子
    • 分享帖
    • 故事帖
    • 技术探讨帖
    • 求助帖
    • 西家杂谈
    • 投票帖
    邮件
    只看
    楼主
    只看
    精华
    只看
    精编
    发帖
    回复
    分享
    复制链接

    扫码分享好友
    任选多种好礼

     
    支持中心新发布“关注”功能了!实时查看彼此动态,更方便地进行技术交流。
    不管是“关注”与“被关注”,相信都是一个美好的开始!
    还有多重奖励派送,快快行动起来吧!

    20秒帮我们优化支持中心!

    欢迎您访问支持中心!

    丰富的视频,全方位的文档,大量的网友交流精华……

    为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!

    感谢您的支持!

    全球技术资源

    • 推荐文档
    • 新手必读文档
    • mySupport
    • 常问问题
    • 手册
    • 应用与工具
    • 证书
    • 软件
    • 产品通知
    • 特性曲线
    • 技术数据
    • 订阅文档 

    培训与认证

    • 首页
    • 教室及直播课
    • 取证训练营
    • 在线自学课
    • 认证证书查询
    • 培训伙伴验证

    技术论坛

    • 首页
    • 发帖
    • 精华帖
    • 高赞帖
    • 分享帖
    • 当前热门
    • 为您推荐
    • 最新发帖
    • 季度标兵
    • 精华之星
    • 用户荣誉榜
    • 我的关注

    找答案

    • 首页
    • 精华问答
    • 高赞问答
    • 有奖问答
    • 全部已解决问题
    • 待解决问题
    • 待推荐问题
    • 快侠榜
    • 上周排行
    • 总分排行
    • 历届夺魁答侠

    产品入门新手必读

    • 首页
    • S7-200产品入门
    • S7-1500产品入门
    • PCS 7产品入门
    • WinCC产品入门
    • MM4系列变频器产品入门
    • S120变频器产品入门
    • SINUMERIK 808D产品入门
    • 国产V系列变频器和数控产品入门
    • 网站新手必读
    • PLC编程聚合页

    售后服务

    • 售后服务简介
    • 服务网络及联系方式
    • 提交服务需求
    • 查询服务进程
    • 下载服务登记表格
    • 我的售后服务信息
    • 售后服务常见问题
    • 服务合作伙伴
    西门子中国  © 西门子(中国)有限公司 1996 – 2021  企业信息   隐私政策  使用条款  京ICP备06054295号  京公网安备 11010502040638号

    系统提示

    新密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    确认密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    取消 确定

    系统提示

    手机号
    验证码
    获取验证码
    暂不验证
    绑 定

    系统提示

    新密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    确认密码:

    密码至少8位,包含大、小写字母,数字和符号至少三种。

    取消 确定

    允许邮箱和手机接收来自支持中心网站的信息

    我已同意《支持中心网站注册协议和隐私政策》

    微信登录扫码一键登录

    验证码登录

    密码登录

    小程序二维码
    请勾选下方用户协议及
    隐私政策后扫码登录

    二维码失效
    点击重试

    正在登录,请稍后...

    打开微信扫一扫,快速登录/注册

    获取验证码
    获取验证码
    忘记密码 没有账号?立即注册
     

     短信登录

     

    获取动态密码

     

    登录

     

    ×
    立即
    签到
    已签到
    已签到0天
    累计可抽西币次数:0次抽奖机会
    累计可抽大奖次数:0次抽奖机会
    信息提示
    很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。
    编辑推荐: 关闭

    请填写推广理由:

    正在加载...
     
    发分享帖
    爱工控,乐分享,
    分享您的经验与案例
    发故事
    发表您的精彩故事,
    参与征文活动
    技术探讨帖
    阐述您的观点,
    表达我的看法
    西家杂谈
    海侃天南地北,
    闲聊工控世界
    发求助帖
    求道解惑,“刨根问底”
    解决问题
    发投票帖
    邀投票,做调查,
    网友帮您来作主