恭喜,你发布的帖子
发布于 2023-04-07 15:58:45
15楼
整体设备与Modbus
多数人谈及Modbus,习惯把它作为一个单独的模块。回避了设备整体层面的,灵活多变的外在工艺,所导致的与Modbus衔接的,复杂场景的,整体性问题。而当设备的功能,越来越向复杂化演进,这个短板就愈发突出。
Modbus本身,作为协议化的IO,事实上是个死东西,执行固化。不只是Modbus,事实上所有的通信执行本身,都是死东西,因为你只能按照协议去执行基本指令。
而设备的边界功能,经过调度的转化,与公共通信IO的多变的衔接方式,越发成为编程的挑战。真正富于变化的,是因项目需求多变,导致的功能多变。
当功能场景和调度体系的需求,变得越来越复杂的情况下,就会体会到:Modbus本身,在设备整体之中,变得越来越边缘化,独立性越来越弱。这导致高内聚成为自然的趋势,而一个设备的整体封装,就顺其自然的合理化了。
在这整体封装内部,并不是把一切混成一团浆糊,随意摆放。而是尽量把其内部元素化,保持稳定的低耦合多层结构。以此来保证易于维护,易于调试,易于扩展和收缩的增减改造。保证程序员在框架下的演化移植,不易出错和思路清晰高效。
本项目以某品牌温控器做一个完整的实例,向大家展示:站在一个完整设备FB的高度,在复杂且持续功能演变的前景下,如何通过一个通用普适的架构设计,把表层功能转化为底层的协议化且存在公共竞争的IO。重点在于分层解耦的调度结构,而不再是Modbus的执行。
这是一个面向设备的完整方案。
绝大多数人都能够读懂表面的代码,都能够大致理解这个案例,会得到一个大体的印象。但同时,又会觉得隐含着一些说不清道不明的东西。
这是诸位需要注意的地方,要把全部的细节一同,从多种角度去联系和扩展,才能更好理解它的设计。
请填写推广理由:
分享
只看
楼主