当前位置: 首页 > news >正文

PLC通讯编程系列之一,为什么复位发送请求信号要在发送块的前面?

系列帖前言

不知道诸位同仁有没有这样的感觉,我们自己做通讯时发现通讯正常,但是过一段时间通讯又不正常了。由于通讯程序中的信号大多只维持一个扫描周期,所以即使经过很长时间的查找,又很难找到程序到底哪里有问题。我做通讯程序比较多,我是有这样的感受。于是为了调试通讯程序,干脆做了日志,记录每个收发,记录每个需要发送的位置的事件。下图就是一个通讯日志。

通过日志中事件发生的先后顺序用以推断、猜测程序到底哪里出了问题。本篇重点不在如何做日志,当然,如果诸位同仁有兴趣,我也可以单独写一篇如何在复杂通讯程序中做日志。

在查看日志的过程中,我发现我的通讯程序有诸多bug。其中之一就是今天要写的主题。

这个系列的文档除了这篇外,还有至少4篇也是属于这个系列的。分别是

《通讯中的AA》、《通讯中的轮询》、《通讯编程的层次》、《通讯编程要注意容错》。在编程通讯代码的时候,如果能注意这些问题,那么通讯编程将会无往不利。

这里的通讯可以是以太网通讯,也可以是自由编程的通讯。在很多层次上,道理是相通的。

本系列帖以SIEMENS的1200,1500PLC为背景进行讨论。

另外还想说,以我多年PLC编程经验,我有一个感受。PLC编程有2个难点,一个就是较复杂的通讯。另外一个就是较复杂的MC编程。这2类编程有个特点,就是信号变化的特别快,靠肉眼观察信号的变化调试程序是不可能的。这个特点在通讯的编程里面尤其突出。

较复杂的意思就是比如让你编一个简易的PROFINET主站的程序。而不是去用西门子已经固化在CPU网口的PN协议。有人会问,我们会遇到这么复杂的通讯编程吗?会的。一些复杂的设备的确需要复杂的通讯,才能控制好这类设备。复杂的通讯程序有一些固定套路。本系列帖就是探讨这些套路的。当我们对通讯程序的编写不再发怵了,那么对于那些相对简单的PLC编程自然手到擒来。所以这也是我为什么把通讯单拿出来与大家讨论的原因。下面我们就开启头脑风暴之旅。

第一篇正文

一个好的稳定的通讯代码需要在编程过程中多方面的注意。今天先说说发送块的问题。

图 1

上图是我犯的众多错误中总结的原则之一。这个原则就是:

复位发送信号(INTF_AA.Req_Send)必须在调用发送块的前面。

我之后编写的不管是简单的通讯程序还是复杂的通讯程序都遵循这一原则。以太网通讯程序同样需要遵循这个原则。

这里要强调的是,如果不遵循这一原则,我们的通讯程序不一定会出错。但是如果我们的通讯程序有些复杂,那么一定会在某个我们不可预知的时刻出现错误。

在这里我先不说明为什么要遵循这一原则。诸位同仁可以在此讨论,说说你的观点。最后我会把答案揭示。

当然编程通讯程序还有其他原则需要遵守,在后续的文档中陆续推出。

http://www.jsqmd.com/news/105357/

相关文章:

  • 不只是朗读:EmotiVoice让机器学会‘有感情地说话’
  • 2025年喷雾型聚合氯化铝厂商权威推荐榜单:工业级聚合氯化铝/聚合氯化铝絮凝剂/聚合氯化铝源头厂商精选 - 品牌推荐官
  • 长沙GEO优公司,ai搜索推广,让企业节省80%的广告费 - 舆通Geo
  • 一键部署EmotiVoice:Docker镜像使用指南
  • CSPS2020 题解
  • 【翻译】【SOMEIP-SD】Page54- Page56
  • 如何快速部署Collabora Online:构建企业级文档协作平台的完整指南
  • 可信数据空间能给企业和个人带来什么?2026政策下的新机遇
  • 2025年山东软件项目验收测试报告服务商权威推荐榜单:山东安全渗透性测试/山东系统验收报告/山东第三方软件测试资质机构精选 - 品牌推荐官
  • 【爆】从多模态到全模态:AI大模型革命性进化,编程小白也能看懂的AGI实现路径
  • pytorch nn.Parameter self.register_parameter() 区别
  • 环形数组+位运算+双向链表:手把手教你实现一个生产级C++定时器系统
  • 2025 年 12 月等离子清洗机厂家实力推荐榜:精密清洗与表面处理技术领先供应商深度解析 - 品牌企业推荐师(官方)
  • 176. 第二高的薪水
  • ComfyUI-MultiGPU:突破显存限制的分布式计算终极解决方案
  • 免费无广!燃脂腹肌速成 APP,宅家就能练出线条
  • hsweb-framework Easy-ORM深度解析:企业级数据访问层实战指南
  • 如何从零开始打造你的第一台四足机器人:Mini Pupper完全实战手册
  • 2025年氟利昂专业代理商排行榜,新型氟利昂供应商新测评推荐 - myqiye
  • Windows Terminal:一站式多设备远程管理终极解决方案
  • 告别手写布局:Tkinter可视化拖拽工具如何让Python GUI开发提速10倍
  • 从“监控”到“可观测”:2025年主流IT监控系统架构演进与选型建议
  • 【运维自动化-标准运维】如何创建条件分支流程
  • 2025年长沙口腔医院 / 门诊怎么选?5 家权威机构实测推荐,性价比 + 诊疗效果双优 - 博客万
  • 30分钟速成!本地部署大模型全攻略:从零开始打造自定义AI助手!
  • JavaScript DOM 原生部分(五):事件绑定
  • Element Plus自动化部署终极指南:从零到一的完整指南
  • Feishin音乐播放器:为什么它是最佳的自托管音乐解决方案?
  • 【2025护网】面试及经验分享(非常详细),零基础入门到精通,看这一篇就够了
  • 智能内容本地化革命:打造永久收藏的数字宝库