目的ID 和源ID 均分配一个字节, 用于标志数据帧的接收设备和发送设备, 以便接收设备判断接收和发生接收错误时呼叫发送设备重发。命令字给定数据帧的类型(数据或控制字) , 指明随后的DA TA 是数据内容还是控制字。这样系统中的各设备可根据事先制定的通信协议将欲发送的控制指令或数据打包写入DA TA 中, 或者将接受的数据帧按协议解包为控制命令并执行或对接收到的数据进行处理。帧数指明了当前发送的是第几个数据帧, 以便于接收设备判断是否有数据帧丢失以呼叫发送设备重发。最后判断接收的校验位与自行计算校验位结果是否一致, 一致则进行相应操作, 否则丢弃该帧并呼叫发送设备重发。
为了确保数据接收的可靠性, 使用应答方式进行通信, 接收机接收到数据后返回一个应答帧加以确认, 发送机收到此帧再发送下一帧数据, 如无应答则周期循环发送同一帧, 如超时未应答则向上位机发送数据帧报错, 上位机接收后显示发送与接收设备ID及错误类别并报警以提示监控人员排除错误。
2.4 系统内各设备间的通信
①PC 与PCC 之间的通信。PC 向下位机发送数据帧采用广播式, 但只有符合目标地址ID 的下位机能够接受, 而下位机采用仲裁机制向上位机发送数据。
②PCC 与PCC 之间的通信。PCC 与PCC 之间是通过PC 以数据转发的形式进行数据帧传送的。当监控计算机收到不是以自己为目的地址的数据帧时, 直接将其送入数据传送总线由目的PCC判断接受。
2.5 基于C语言的PCC数据通信的实现及程序流程图
①下位机编程。使用贝加莱公司提供的标准PC。
PCC 发送程序流程如图5 (a) 所示。PC 发送程序流程由于为一对多广播式发送, 省略查询总线过程, 直接发送即可。PC 接收程序流程如图5 (b) 所示。PCC 接收程序流程基本与PC 接收程序流程一致, 但在判断接收数据帧目的ID 与本机ID 不符后, PCC 直接退出事件触发服务程序返回, 而PC则将得到的数据帧发送给各下位机以使目的PCC 接收该数据帧。
②上位机编程。使用Visual Basic , 流程中需要发送数据或命令只要按定义好的通信协议进行数据装帧并调用数据发送程序将其通过串行口发送即可。为了实现数据的实时接收, 在VB 工程中导入了PComm Pro (此软件借助Windows API 函数的调用来控制使用串行通信端口) 的通信函数库和控件以实现接受数据的实时触发。事件的触发除了定时器或循环的轮询(Polling) 方式外, 还可以使用回调函数(CallBack Function) 实现。PComm 针对事件的处理就是采用回调函数的方式处理, 欲建立事件, 需给定一个函数的地址, 当事件发生时, 便到该回调函数所在地址去执行该程序代码。因此定义了回调函数作为接受数据的事件触发服务程序, 当接受数据事件发生时便执行该事件触发程序, 保存接受到的数据, 并按协议进行数据帧的解包, 将数据取出并作相应处理显示在监视器上, 以便实时监控, 或执行相应的命令。
3 结束语
本文利用硬件仲裁电路巧妙地实现了数据总线分配, 解决了数据冲突问题, 简化了系统设计, 优化了系统性能。通过PCC 与PC 的有机结合, 构成了基于RS-232 的总线式集散控制系统, 充分利用了PCC 和PC 的优点, 用可视化的图形界面实现对整个系统的实时监控。实验证明, 系统运行良好, 监控准确无误, 还可应用于其它分布式测控系统和类似系统, 具有一定的工程应用价值。
台达DOP-W系列提供10.4”/12”/15&rdqu…
JetNet 3005G · 5口全千兆RJ-45交换机 …
显示规格 一般规格 环境规格 结构规格 外形…
功能规格 …
功能规格 …
西门子SIMATIC S7-400PLC的主要特色为:极高的处理…