抽水系统的计算机监控设计
抽水监控系统的设计关键之一是计算机与PLC的通信帧,PLC的通信系统的基本协议规定通信帧有严格的格式,本系统采用松下的PLC。上述Read_x2()指令函数中的"%01#RCSR0000**"为计算机发出读PLC的x2状态的通信帧,功能说明如下表2:
通信帧 | % | 01# | RCS | R0000 | ** | |
说明 | 通信标志 | 地址 | 命令码,读接点 | 接点编号 | 效验码,不效验时用“*”代替 | 结束码 |
2.3计算机与PLC的串行口连接
计算机与PLC的RS-232串行口有9和25个脚两种,而每个脚位的功能各有不同,正确连线才能使通信成功。计算机和PLC的串行口一般为9脚,其定义和功能如下表3:
脚位 | PC机RS-232,其9支脚位的定义 | PLC上的RS-232,其9支脚位的定义 | ||
简写 | 意 义 | 简写 | 意 义 | |
1 | CD | 载波侦测 | FG | 保护接地 |
2 | RXD | 接收字符 | SD | 传送字符 |
3 | TXD | 传送字符 | RD | 接收字符 |
4 | DTR | 数据端备妥 | RS | 要求传送 |
5 | CND | 地线 | CS | 清除以传送 |
6 | DSR | 数据备妥 | 未用 | |
7 | RTS | 要求传送 | SG | 地线 |
8 | CTS | 清除以传送 | CD | 载波侦测 |
9 | RI | 响铃侦测 |
计算机与PLC串行口连接通常有两种,基于连接和基于不连接的信号接线方式如图5所示:
2.4运用VC++6.0语言编程实现对计算机的串行口的读写
VC++6.0语言对计算机硬件有较好的控制能力,运用MSComm控件对计算机的串行口的读写控制。首先要对MSComm控件(假设名称为MSComm1,其对应的控制变量为m_MSComm1)的几个属性进行设置。
m_MSComm1.SetCommPort(1);//设置通信端口
m_MSComm1.SetSettings("9600,n,8,1");
//设置通信的波特率、效验方式、数据位、停止位
m_MSComm1.SetSthreshold(1);//设置要接受的字符数,当输入缓冲区字符书达到设置值,触发OnComm事件
m_MSComm1.SetPortOpen(TRUE);//打开通信端口
设置各项属性后,运用MSComm控件对串行口进行读写,将读到的内容写入输出缓冲区,再将输入缓冲区的信息读到程序去,计算机依据程序自动完成工作。
应用m_MSComm1.GetInput()和m_MSComm1. SetOutput()属性就可以将计算机输入缓冲区的信息读到程序中和把程序中的信息输出到计算机的输出缓冲区。
VC++6.0语言的m_MSComm1.GetInput()和m_MSComm1. SetOutput()属性发出和接收的是ColeSafeArray型数据,发送前要用SendString(CString m_strSend)实现转换,接收后要用ReadString ()实现转换为Cstring字符串。
PLC发出命令帧后,读取PLC的返回帧需一定的时间,否则返回帧的信息还未到达输入缓冲区,程序执行不正确的信息,所以在读返回帧的程序前,设置等待时间,使用Sleep()让程序处于休眠状态等待完整的回帧的信息。
2.4.PLC程序的配置
1)在PLC程序要设置波特率、奇偶效验方式、数据位、停止位为“ 9600,n,8,1”,与计算机程序一致。
2)在PLC程序要设置为允许计算机连接。
3)将程序下载到PLC后,还要将PLC断电再接通电,通信设置才生效。
3.结束语:
运用计算机的高级语言与计算机硬件控制、计算机与PLC通信等技术,实现计算机远程监控系统的设计,本文介绍的控制系统可作为一个控制模块嵌入到大型的楼宇监控系统中;也可以根据企业生产过程的控制对象,修改相关的一些参数,作为工厂的在线监控系统。
抽水系统计算机监控PL 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)