分体式电磁流量计通过串行RS一485标准总线与站内PC机连接。在进行数据传输时,站内PC机先发出地址帧对指定的节点设备寻址,在得到确认之后向选中的节点设备发送命令及参数,或者接收节点设备采集的数据。为了满足简单实用的要求,根据RS一485数据总线通信的特点可以将节点的分体式电磁流量计和站内PC机间的通信协议分为三层:物理层、数据链路层、报文层。
一、物理层
分体式电磁流量计等节点设备和站内PC机之间的通信符合RS一485电气规范。采用平衡式差分长线驱动,半双工。通信介质采用双绞线或同轴电缆。
二、数据链路层
分体式电磁流量计等节点设备和站内PC机间的通信采用异步串行通讯控制规程,并采用地址位唤醒握手协议。因此在协议中规定了传地址和传数据两种不同的帧格式,如图.64所示。地址帧和数据帧由11位构成,帧格式为l位起始位,l位停止位,8位数据位,1位*9位。我们将*9位设定为“地址/数据指示位”,用来区分所发送/接受的帧信息是地址帧还是数据帧。*9位为1,表示PC机发送/接受的是“地址帧”*9位为O,表示主机发送/接受的是“数据帧”。命令帧与校验和的发送格式与数据帧相同,因此可由数据帧演化得到。
三、报文层
在分体式电磁流量计等节点设备和C机通信的过程中,由地址帧、命令帧、数据帧、校验和可组成各种功能不同的报文。由于采用主从工作方式来实现通信,分体式电磁流量计等节点设备仅能接收并执行PC机发送来的控制命令,而不能发送命令给PC机。因此,由PC机发往流量计等节点设备的报文一般包括一个地址帧,一个命令帧,若干个数据帧和一个校验和,其报文格式图.6a5所示;而由流量计等节点设备发往PC机的报文一般包括一个地址帧,若干个数据帧和一个校验和,其报文格式如图6.5b所示。
由于RS一485电气标准规定每段只能联结犯个节点设备,因此可用地址帧中五个二进制位表示这32个地址,其余3位用来表示命令,从而构成地址命令帧。对于控制命令需求不超过八个的通信系统,采用地址命令帧可压缩报文长度提高通信效率。在污水网络监控系统中,分体式电磁流量计和PC机通信的主要目的是将流量计中的有用数据读到PC机中。这些数据包括:总累积流量、正向累积流量、反向累积流量、瞬时流量。通信时,PC机只需向分体式电磁流量计发送读总累积流量、读正向累积流量、读反向累积流量、读瞬时流量命令即可,因此二者间通信所用的地址帧和命令帧可合二为一,用一个地址命令帧代替。PC机和分体式电磁流量计间的地址命令帧定义如图.66所示。根据污水网络监控系统中PC机与分体式电磁流量计间通信的特殊性,二者通信所使用的报文可简化为图.67的格式。
四、通信规程
采用地址唤醒握手协议后,流量计和PC机间的通信按照下面甲乙机间的通信规程进行。在通信规程中,甲机代表网络中的PC机,乙机代表网络中的分体式电磁流量计。通信规程中的3个通信重复计数器及其所对应的通信出错信息各不相同,以便于通信出错原因的查找确定。甲机和乙机间具体通信规程如下:
甲机:为了得到分体式电磁流量计中的有用数据,甲机*先向网络中发出与流量计通信地址相关的地址命令帧,以启动一次数据通信。
乙机:接收到与地址有关的帧信息后,乙机将帧信息中的地址与本身所分配的网络地址相比较。如果帧信息中的地址与其本身的网络地址一致,乙机建立甲乙机间的链路连接并从帧信息中读取命令,然后向甲机发送包含本身地址的地址帧,进入等待回应信号状态;否则,乙机忽略得到的地址信息,不做任何反应。
甲机:如果在发送完地址命令帧的1秒内甲机没有收到地址帧,甲机发送地址命令帧重新启动一次通信。收到乙机发回的地址帧后,甲机将地址帧中的地址与曾经发出的地址相比较。如果地址相同,甲机向乙机发送oCC(H11oO11O0)数据帧做为回应信号;否则,甲机重新发送地址命令帧。
乙机:发送完地址帧的乙机接到数据帧后,判断数据帧中是否存在n和00的组合连接。如果存在,则表明该信息是回应信号,乙机按照命令要求发送*一个数据;否则,乙机将该信息忽略,继续等待甲机的回应信号。
甲机:如果在发送完回应信号的1秒内甲机没有收到数据帧,甲机发送地址命令帧重新启动一次通信。当地址命令帧的重发次数已达到3次仍未得到数据帧时,甲机放弃通信任务并发出通信出错信息。收到数据帧后,甲机向网络中发送OCCH(11001100)数据帧做为回应信号,以通知乙机发送下一个数据帧信息。
乙机:发送完数据的乙机接到数据帧后,判断数据帧中是否存在11和00的组合连接。如果存在,则表明该信息是回应信号,乙机发送下一个数据;否则,乙机将该信息忽略,继续等待甲机的回应信号。
甲机:如果在发送完回应信号的1秒内甲机没有收到下一个数据帧,甲机重发回应信号OCCH。当回应信号的重发次数已达到3次仍未得到数据帧时,甲机放弃本次通信,然后重新启动一次读取该数据的通信。当同一通信重新启动3次仍不能正常时,甲机放弃通信任务并发出通信出错信息。
乙机:当发送完*后一个数据帧(校验和)后,乙机退出甲乙机的链路连接,结束一次通信。
甲机:收到*后一个数据帧(校验和)后,甲机将已收到数据累加得到的校验和同收到的校验和进行比较。如果两个校验和的数据一致,甲机结束本次通信;否则,甲机重新启动一次通信。当同一通信重新启动3次仍得不到正确数据时,甲机放弃该通信任务并发出通信出错信息。