为了进一步掌握某型火箭炮软件产品的质量状况,通过静态测试尽早发现软件中存在的缺陷,对软件产品进行完善和修订达到提升软件产品质量的目的。以某火箭炮软件代码静态测试的实际应用,证明这种方法的实施能够达到提升软件产品质量的效果。......
2025-09-29
可以使用多种方式来实现BACnet-MS/TP协议的软件编程,下面是一个在MCU(Micro Con-trol Unit,微控制单元)中实现BACnet-MS/TP协议的软件结构框架。
完整的协议栈软件自上而下的结构是:应用层模块→对象模块→服务模块→基本数据类型模块→数据链路层(MS/TP)模块→网络层接口模块。
DDC中的协议栈软件结构中最复杂的是应用层模块,包含BACnet对象模块、基本数据类型模块、APDU解析/分发模块和APDU组装模块。
1.应用层模块
如前所述,BACnet协议为了节约软硬件开销简化了层次结构,使得BACnet应用层涵盖了开放系统互联参考模型(OSI)中会话层、表示层和应用层的功能。BACnet应用层模块是BACnet应用软件的基础,它实现BACnet协议应用层内容,负责提供工作站的各功能模块与物理设备直接的通信服务。根据应用层的功能分析,可以将应用层划分为如下模块:对象模块、服务模块、基本数据类型模块。
(1)对象模块
对象模块定义了BACnet对象。BACnet对象按其功能可分为两类:一类是采集数据的对象,如模拟输入/输出对象,这类对象需要访问设备硬件;另一类对象是在采集的数据基础上完成复杂功能,如环对象以及其他实现报警事件功能的对象,这类对象不需访问硬件。另外,某些对象的属性(如趋势登录对象的缓存器大小属性)需要设备厂商根据DDC型号进行初始配置,协议栈提供对这些属性的配置函数接口。
(2)服务模块
服务模块用于处理报文的分发、解析和组装。对于从网络层上来的APDU,服务模块根据APDU的类型和服务选择参数,调用相应的服务解析模块。服务解析模块对APDU的信息进行解码,并根据需要与DDC中的BACnet对象进行交互。另一方面,DDC会发出响应报文(如读属性响应),或者主动发出某些报文(如事件与报警服务),因此服务模块还提供服务报文组装的函数接口。
(3)基本数据类型模块
基本数据类型模块是一个工具类库,包含对基本数据类型的定义及其编、解码函数。BACnet包含13种应用数据类型以及其他基本数据类型。BACnet应用数据类型可以直接进行编、解码。BACnet基本数据类型对应着ASN.1中的复合数据类型,它是由BACnet应用数据类型配合标记按照一定的结构组合而成的。因此,基本数据类型的编/解码实际上是按一定的规则调用应用数据类型以及标记的编/解码方法来实现的。(https://www.chuimin.cn)
2.网络层模块
对于DDC来说,网络层向应用层提供一个不确认的无连接数据单元传输服务。网络层与应用层交互的服务原语是网络层数据单元请求(N-UNITDATA.request)和网络层数据单元指示(N-UNITDATA.indication)。其原语参数如下:
N-UNITDATA.request(destination address,data,network priority,data expecting reply)
N-UNITDATA.indication(source address,destination address,data,network priority,data ex-pecting reply)
DDC收到来自链路层数据,解析出相应的地址信息,并把地址信息和APDU绑定起来存放到一个结构中传送给应用层,这样当应用层需要回复报文时可以得到目标地址。
3.数据链路层(MS/TP)模块
MS/TP是一个主从/令牌传递的数据链路协议,物理层采用RS-485半双工通信标准。MS/TP层包含两个状态机,分别是主节点状态机和接收帧状态机;接收帧状态机负责帧的接收,如是数据帧则调用网络层接口上传给网络层,主节点状态机负责帧(包括数据帧和控制帧)的发送。两个状态机分时实现,根据两者之间的关系,接收帧状态机可放在主节点状态机中统一调度。BACnet数据链路层模块中的接收模块实现接收帧状态机;发送模块实现主节点状态机;串口控制模块实现串口驱动与收发控制,串口读写采用中断方式。
4.网络层接口模块
网络层接口模块定义接口及接口函数调用模块,使用服务原语DL UNITDATA.request和DL UNITDATA.indication来实现。
使用以上MS/TP协议软件结构框架,可以解决BACnet控制器的通信功能。解决方案具有极大地多样化特点,这仅仅是其中的一个方案而已。
相关文章
为了进一步掌握某型火箭炮软件产品的质量状况,通过静态测试尽早发现软件中存在的缺陷,对软件产品进行完善和修订达到提升软件产品质量的目的。以某火箭炮软件代码静态测试的实际应用,证明这种方法的实施能够达到提升软件产品质量的效果。......
2025-09-29
CM1241 RS232和CM1241 RS485接口模块都支持基于字符的自由口协议,下面以RS232模块为例介绍串口通信模块的端口参数设置、发送参数设置、接收参数设置以及硬件标识符。RS485通信模块没有流控制功能。图8-37 端口参数设置硬流控Hardware RTS always switched通信模块发出TRS请求发送信号后持续检测来自通信伙伴的CTS允许发送信号,以判断通信伙伴是否能接收数据。图8-40 SEND_CFG指令块表8-6 SEND_CFG参数含义3.串口通信模块的接收参数设置在串口通信模块接收数据之前,必须对模块的接收参数进行设置。......
2025-09-29
本节定义螺纹传动,并巨将螺栓定义为固定件,最后模拟定义的螺纹传动。进入模型运动模拟工作台单击CATIA界面上面的→→,进入工作台。零件按螺纹铰接配合在一起,同时在左边的模型树中出现机构名称和铰的名称。图2-5 对话框定义固定零件单击工具栏内的固定零件图标,出现对话框。在图形区选择螺栓零件,出现一个消息框,提示现在设置的机构可以被模拟。单击运动模拟对话框内的按钮,使滑块复位到原点。......
2025-09-29
MS/TP网络在硬件组成上包括RS-485收发器、计时器和通用异步收发器3个构件。MS/TP网络网络层RS-485总线的连接如图6-6所示。图6-6 MS/TP网络网络层RS-485总线的连接RS-485标准采用平衡(或差分)式数据传输模式,具有较强的抗干扰能力,传输介质采用较为廉价的屏蔽双绞线,并且在传输介质上可以挂接多个接收器。......
2025-09-30
重载型自动扶梯相对于普通自动扶梯和公共交通型自动扶梯,在动力、强度、安全和寿命等几方面都需要进行重载设计。重载型自动扶梯则以100%制动载荷作为额定载荷计算电动机功率,允许自动扶梯以制动载荷连续运行。重载型自动扶梯的载荷条件设定 每3h中1h以100%制动载荷运行,其余2h,一般设定为制动载荷的60%。......
2025-09-29
自《巴塞尔资本协议》公布以来,以资本充足监管为基础的监管方法一直是各国银行监管当局遵循的指导理念。在资本充足要求方面,《新资本协议》规定,关于信用风险、市场风险和操作风险的最低资本充足要求仍为8%。《新资本协议》规定了两种难易程度不同的内部评级法,即“内部评级初级法”和“内部评级高级法”。......
2025-09-29
当然,OB35的周期设置可以根据工艺实际要求而定。表9-3 PID软件编程步骤为了保证执行频率一致,块应当在循环中断OB中调用。图9-3 设置SFB41的背景DB为DB3具体的PID调用程序如图9-4所示。图9-4 PID程序调用在PID程序调用中,“CYCLE”参数对应的是扫描时间,必须将程序块调用的间隔时间赋值在这里。当前值显示在窗口的右上部。9)单击“关闭”按钮,终止曲线记录器的功能。......
2025-09-29
软件滤波用软件来识别有用信号和干扰信号并滤除干扰信号的方法称为软件滤波。软件“陷阱”从软件的运行来看,瞬时电磁干扰可能会使CPU偏离预定的程序指针,进入未使用的RAM区和ROM区,引起一些莫名其妙的现象,其中死循环和程序“飞掉”是常见的。“看门狗”是工业控制机普遍采用的一种软件抗干扰措施。当侵入的尖锋电磁干扰使计算机“飞程序”时,“看门狗”能够帮助系统自动恢复正常运行。......
2025-09-29
相关推荐