响铃侦测
计算机与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通信等技术,实现计算机远程监控系统的设计,本文介绍的控制系统可作为一个控制模块嵌入到大型的楼宇监控系统中;也可以根据企业生产过程的控制对象,修改相关的一些参数,作为工厂的在线监控系统。