news 2026/6/22 23:36:38

PLC通讯编程系列之二,通讯中的AA

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PLC通讯编程系列之二,通讯中的AA

既然谈通讯,那么必然有通讯本方和通讯对方(下称通讯双方)。即使再复杂的通讯也离不开这2者。

几乎所有通讯(95%),不管通讯的形态是什么样子,都离不开本篇所讨论的AA。剩下的5%通讯是一种极简单的通讯形式。比如一个仪表不管通讯对方如何,总是定期的向对方发送固定格式的数据。这种不在本篇讨论。我们讨论剩下的95%。

所谓AA就是Ask & Answer。我称之为AA。就是通讯一方发起通讯,另一方应答。有些人也称为RR(Request & Response)。在通讯的术语中称为transaction,中文翻译是对话。这种AA通讯的形式(对话)是很多复杂通讯的基础。我们回忆一下常见的通讯形式。PROFIBUS,PROFINET,MODBUS,MODBUS-TCP。都是主站发起Ask报文,从站Answer主站的报文。主站对每个从站都是AA通讯。从主站的角度,用多个AA就可以处理多个子站的这些通讯。

还有一种情况,就是主动方(往往是PLC)只与一个设备通讯,但是这个设备是一个复杂设备(比如,一个复杂的仪表、一个多轴的动作机构或者更复杂的SECS协议)通讯。这个复杂设备中包括许多对话。每个对话都对应一个功能,每个对话都可以用对应的AA处理。比如读取某个仪表的当前状态,这可以是一个AA;让这个仪表进行电源输出,这是另一个AA。再比如芯片生产中的真空机器手。一个AA可以让机器手回零点,另一个AA可以让机器手去某个端口取晶圆。再比如芯片行业用的SECS通讯,通讯双方是厂级MES与单机设备(如光刻机)。SECS中的通讯双方虽然不固定通讯主动方和回应方,但是SECS协议几百个对话中的每一个对话都是由AA组成,或者可以说由AA管理。通过上述这些例子我们认识到虽然通讯双方是PLC和复杂设备,只有两者,而不是PROFIBUS中的多个通讯方。但是PLC与这种复杂设备的通讯程序也是由多个AA组成的。

总结以上2段的内容,我们晓得:一个复杂的通讯可以拆解为由多个AA组成的相对简单的通讯。这样拆解后,显然问题得到了简化。剩下的问题就是如何有机的组织这些AA。其中一种组织方式就是轮询。下一篇讲解通讯中的轮询。

另外,本系列虽然探讨的是PTP,其实以太网通讯也可以这么理解。

既然AA是最基本的通讯形式,那么我们就要研究AA,把AA做好。AA到底应该是什么样子呢?AA如果是一个FB,那么AA应该考虑什么呢?这些问题必须回答。

下面我们共同探讨这些问题。先看一个调用AA块的例子。

图 1

图1是一个用于发送和接收数据的AA,这个AA是在USS通讯中使用的。(项目中用到USS通讯未使用西门子库中的功能。USS通讯由笔者通过PTP自由编程实现。其中图1中的AA就是一环。)

图1的接口中应该包括哪些信息?根据前文说的AA原理,同行们可以在此讨论,各自发表看法。最后我会结合同行和我自己的意见,在这里发布出来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 14:58:41

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

系列帖前言 不知道诸位同仁有没有这样的感觉,我们自己做通讯时发现通讯正常,但是过一段时间通讯又不正常了。由于通讯程序中的信号大多只维持一个扫描周期,所以即使经过很长时间的查找,又很难找到程序到底哪里有问题。我做通讯程序…

作者头像 李华
网站建设 2026/6/23 4:03:37

(VSCode Qiskit配置验证全流程)新手避坑指南——专家级配置实践

第一章:VSCode Qiskit配置验证全流程概述在量子计算开发环境中,正确配置开发工具链是实现高效编码与仿真的前提。使用 Visual Studio Code(VSCode)结合 Qiskit 构建本地量子编程环境,需经历编辑器配置、Python 环境管理…

作者头像 李华
网站建设 2026/6/23 15:00:43

【量子编程必备技能】:如何让VSCode完美支持Qiskit代码智能提示?

第一章:VSCode Qiskit代码补全的重要性在量子计算开发中,高效编写 Qiskit 代码依赖于强大的开发工具支持。Visual Studio Code(VSCode)凭借其丰富的插件生态和智能代码补全功能,成为量子程序员的首选编辑器之一。启用 …

作者头像 李华
网站建设 2026/6/23 14:53:26

IDEA配置

Intellij Idea设置显示后退和前进按钮的方法-百度经验 解决springboot大片报红,提示:Add library xxx to classpath的问题_add library to classpath-CSDN博客 Intellij IDEA运行报Command line is too long的解决办法_idea command line is too long-CS…

作者头像 李华
网站建设 2026/6/23 14:59:23

Q#-Python混合调试实战指南(量子编程调试稀缺技术曝光)

第一章:Q#-Python混合调试概述在量子计算与经典计算融合的开发实践中,Q# 与 Python 的混合编程模式逐渐成为主流。这种架构允许开发者使用 Q# 编写高性能的量子算法逻辑,同时借助 Python 提供的丰富生态进行数据处理、可视化以及主控流程管理…

作者头像 李华