既然谈通讯,那么必然有通讯本方和通讯对方(下称通讯双方)。即使再复杂的通讯也离不开这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原理,同行们可以在此讨论,各自发表看法。最后我会结合同行和我自己的意见,在这里发布出来。
如果亲爱的同行们觉得本篇有帮助,请点击“有帮助”。非常感谢。如果您希望了解通讯或者其他领域的有关主题,也可以给我留言。