引言
建议性标准RS-485 作为一种多点差分数据传输的电气规范现已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点双向通信。但是作为数据传输链路,RS-485标准只规定了平衡驱动器和接收器的电气特性,在此基础上用户必须建立自己的高层通信协议。结合水下钢桩防腐阴极保护电流检测系统的开发过程,介绍一种基于RS-485接口的通信方法。
1 网络配置
原料码头分为引桥(长1700米)、主码头(长640米)和副码头(长430米)。呈反F形态,由855根钢桩支撑。每根钢桩分二或三段加以阴极保护电流以防腐蚀。阴极保护电流总数可达2565路。为实时监测阴极保护电流的变化,在码头各点安装电流检测装置57台、参比电压检测装置1台(以下称从节点),每台最大检测48路电流或64路电压,通过RS-485网络向电气控制室的PC机(以下称主节点)传送数据或由主节点设置各个从节点的工作状态。
RS-485网络拓扑一般采用终端匹配的总线型结构,不支持环形或星型结构。根据本系统中的反F形状的特点,网络拓扑结构采用了三条总线分别将各个从节点串接起来,再用两个集线器整合为一条总线与主节点相连、实现网络的合理布局。集线器同时又有中继器的作用,延长了通信距离。理论上可以串接8个集线器,通信距离可达9.6公里。
详见网络连接图。(图一)
2 数据编码和通信协议
串行通信的格式是:8位数据位,1位启动位,1位停止位,无校验位,通信速率是9600bps。
为了避免数据代码和命令代码冲突而引起通信混乱,通信代码都采用ASIIC码的编码形式。由于本系统中数据代码只有数值数据,0~9,A~F除外的字符都可以用作命令代码。假如数据代码中有文本数据的话,就必须用ASIIC码表内的非打印字符作为命令代码。
在一个主节点和多个从节点构成的总线式网络中,采取主从应答方式由主节点发起并控制网上的每一次通信。每个从节点有一个识别地址,只有收到与自己地址匹配的数据帧时,才有相应的处理,并向主节点应答结果。
该系统中主要有四个通信过程,从节点发送电流或电压数据、对从节点的采集通道启用或禁用设置、电流和电压的上、下限数据设置以及对从节点的时钟校对。据此定义相应的网络协议如下:
帧格式定义:
* 命令代码:见下表
* 地址:为从节点地址,有效范围是1~254。其中256为广播地址。
* 校验码:采用累加和校验,校验码仅取各字节之和的低字节。
* 长度:数据段的字节长度
* 数据段:时钟校对过程时,为年、月、日、时、分、秒、周共8个字节。[page]
发送电流或电压数据时,为i (0≦i≦47)开始的8组采集数据,每组数据为4个字节。
采集通道启用或禁用设置时,为6个字节,分别表示48路采集通道的状态,其中1表示启用,0表示禁用。
在广播方式时(地址为256),为电流和电压的上、下限数据共8个字节。
* 响应帧:通过校验后,将接受帧中的命令代码改写为V,回送给主节点进行二次确认,保证数据传送无误。
3 软件流程和程序清单
为保证通信畅通和从节点的本地事务顺利执行,设计了限时退出的通信方法,既在收到与自己地址不匹配的数据帧时,临时关闭通信口。这样既保证了本地事务的执行时间,又可避免从节点常在网上可能引起的双向干扰。因此在上、下位机的软件设计中采用二次检错、重发和限时退出并重新握手建立连接等通信机制。现场调试中发现,在某些节点工作异常,甚至通信网络完全瘫痪的情况下其他各节点也能独立完成数据采集、异常报警和实时数据存储等本地事务。一旦故障节点排除,既可恢复通信。
* 软件流程如下:
* 软件实现和主要程序清单:
在处理器内留出以COM_REG为首地址的寄存器组,用来存放接受或发送的一帧数据包,并以COM_REG_CUNT寄存器作为一帧数据长度的计数器,利用循环结构很容易编制一帧数据包的收发通用程序了。
TRANS_485: ;收发通用程序
BCF RC,R485_P ;开启485通信口。
_DELAY D‘3‘
MOVLW COM_REG
MOVWF FSR
MOVLW COM_REG_CUNT
MOVWF COUNT
CALL RS_HEX_IN ;一个字节收发子程序。
BTFSC SYS_FLAGE,CONMM_ERR ;通信错误状态标准位。
RETURN
MOVWF INDF
INCF FSR
DECFSZ COUNT
GOTO $-6
RETURN
* 其他主要子程序:
XIAO_SUB ;校验和子程序
CLRF TEMP
MOVF INDF,W
ADDWF TEMP
INCF FSR
DECFSZ COM_REG_CUNT
GOTO $-4
RETURN
ASCH ; ASIIC码转化程序
MOVWF TEMP
MOVLW D‘48‘
SUBWF TEMP,W
BTFSS STATUS,C
RETLW 0H
MOVLW D‘71‘
SUBWF TEMP,W
BTFSC STATUS,C[page]
RETLW 0H
MOVLW 41H ;D‘65‘——A
SUBWF TEMP,W
BTFSC STATUS,C
GOTO ASCH_A_Z
CLRF C
MOVLW 30h ;D‘48‘——0
SUBWF TEMP,W
RETURN
ASCH_A_Z
CLRF C
MOVLW 37H ;D‘55‘——7
SUBWF TEMP,W
RETURN
* 主节点相关界面见图2、图3。
4 结束语
在两年多24小时不间断运行中,通信过程始终处于稳定、畅通的工作状态。为整个系统的可靠运行提供了坚实的基础,完全满足了用户的要求和设计指标。
该系统的使用,提高了巡检人员的工作效率和工作条件。对于及时、准确地了解整个防腐工程的现状,早期隐患(如有异物缠绕、参比电极的早期失效等)的发现都起到了非常重要的作用。同时把该领域内的监测水平迅速提高到和国际接轨、国内领先的位置。
创新观点:提出了利用RS485集线器可以构成星型网络拓扑结构。软件设计时采用二次检错、限时退出并重新握手建立连接等通信机制。这样既保证了本地事务的执行时间,又可避免从节点常在网上可能引起的双向干扰。
参考文献
[1]B&B Electronics. RS-422 and RS-485 Application Note, 1997
[2]李朝青. PC机及单片机数据通信技术. 北京航空航天大学出版社2000
[3]用VB实现S7-300 PLC与PC机的普通串口通信,李光明,李妍,李茜《微计算机信息》2005年18期38-40页
作者简介: 王明衍(1957),男,上海市人,讲师,学士,主要研究方向:嵌入式系统、智能仪表;赵毅(1962),男,上海市人,讲师,学士,主要研究方向:网络安全,网络编程
上一篇:LIN总线在电动车窗系统控制中的应用
下一篇:PLC构成PROFIBUS网络原理及应用
推荐阅读最新更新时间:2024-05-02 22:08
- 答题赢好礼|机器故障防患未然 大机器健康状态监测为您助力
- 2022 Digi-Key KOL 视频系列:你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍
- 4月TI两场EP直播,都挺好:超声气体流量计量创新方案+SimpleLink平台小鲜肉CC13X2/CC26X2专场
- Mouser 新用户大礼包再次来袭:晒单5折返E金币!
- 10秒钟调查!TI 产品封装你来左右!!!
- 下载Intel白皮书 赢精彩好礼
- EEWORLD E金矿荣耀登场!为梦想加分!
- 了解ADI电网管理、能源计量方案,答题赢Kindle、《新概念模拟电路》【世健的ADI之路主题游 能源站】
- WEBENCH轻松注册,尽享精彩好礼!
- 报名参会三重礼 | 西门子车用半导体全栈解决方案直播