2 仿真模块的设计
在实际的工程项目中,数据采集模块和控制模块一般采用RS-485接口,因为这种接口只需要两根连接线,施工方便,同时,传输距离可以达到1200米左右。一般计算机都配有RS -232接口,可以通过RS-232/RS-485转换器进行转换,从而实现计算机与RS-485接口的模块进行通信。所以,仿真模块采用RS-232接口。仿真模块的主界面如图1所示。
开发平台的软件实现(下)-计算机仿真投稿系统">
图1 AI/DO-M 仿真模块的主界面
图1左部是硬件实物的抽象,工作状态指示灯红灯表示空闲,绿灯表示正在工作。 Power 指示灯为绿色表示本模块已加电,Tx 指示灯为绿色表示本模块正在发送数据,Rx指示灯为绿色表 示本模块正在接收数据。下部是两个温度传感器,数据范围为00-0xFF,分别对应温度0-100℃。上部的 两个输出开关由主控程序通过串行接口控制,如果 OUT0开关闭合,则形成一个环路,灯亮,对应的温度 传感器S1升温,红色箭头朝上,数据递增;否则,对应的传感器温度下降。图1的右部主要是通信协议的 描述,通信协议是操作模块的约定。通信协议制订了三种,即读(Read)协议、响应(Reply)协议和写 (Write)协议。Read 协议用来读取模块中的数据,EOT 是前导字符,ID 是模块的地址,RD 是读标志 ,BCC 是校验码,EM 是结尾码。 Reply 协议是对 Read 协议的响应,STX 是前导字符,DT1 和 DT2 是 传感器的两个温度字节,DO 是输出开关的状态,OUT0 和 OUT1 使用一个字节的最低两位,1表示开关闭 合,0表示开关打开。Write 协议的 WT 是写标志。三条协议的下部是对协议中的字符的说明,如 EOT 表示字节 04,WT 用 0x57 来表示等等。
Receive 文本框中显示收到的主控机发送的 Read 协议 或 Write 协议。Send 文本框中是仿真模块发送给主控机的 Reply 协议。
Setup 按钮显示模块参数设置窗体,如图2所示。Port Setup 页签用来设置串口相关的参数,Protocols Setup 页签设置协议参数,包括协议的校验码与结尾码。ID 文本框设置模块的地址,Interval 文本框设置以 秒为单位的时间间隔,Step 表示步长,图2所示,表示仿真模块每过6秒,传感器的数值上升(如果对应 的输出开关闭合)或下降(如果对应的输出开关打开)5。所设置的参数都通过 My.Settings 方法保存 ,下次打开程序,将恢复这些数据。
使用仿真模块时,必须先点击 Setup 按钮设置参数,然后 ,点击 Power 指示灯,使其变绿,这时,仿真模块工作。通过1.4节的方法收到数据后进行处理,如果 是主控机发送的 Read 协议,则将模块的当前数据组装成 Reply 协议,调用 1.3 节中的 SendData 函 数发送出去。如果是Write 协议,则调用 1.1 节中的SetByteBit 和 ResetByteBit 函数进行置位或复 位,然后,调用 CheckByteBit 函数,来显示输出开关的状态,如果对应的位为1,就显示红线,表示开 关闭合;如果对应的位为0,就隐藏红线,表示开关打开。
主窗体中用 timer_Comm 定时器配合 数据的接收,用 timer_Signal 定时器来控制 Tx 与 Rx 指示灯的闪烁,用 timer_Step 定时器 (Interval 属性由图2设置)来调整传感器的字节数据。