PLC与上位计算机通讯监控系统的设计
作者:刘恒全
来源:《中小企业管理与科技·学术版 》2008年第05期
一、引言
由于体积小、可靠性高以及组态灵活等优点,PLC在工业控制领域得到了广泛的应用。在PLC组成的控制系统
中,一般由上下微机组成主从式控制系统,PLC作为下位机,完成数据采集、状态判别、输出控制等,上位机(微型计算机、工业控制机)完成采集数据信息的存储、分析处理、状态显示以及打印输出,以实现对系统的实时监控。这种监控系统充分利用了微型机和PLC各自的特点,实现了优势互补,得到了广泛的应用。
二、通讯连接方式
在工业控制及测量领域较为常用的网络之一就是物理层采用RS-485通信接口所组成的工控设备网络。由于RS-485具有物理连接方便、抗干扰能力强、传输距离远等特点,采用这种通信接口可以十分方便地将许多设备组成一个控制网络。
PLC与上位机一般采用RS-485接口的串行方式。FX2N是三菱公司推出的一种新型的小型PLC,该PLC有许多优点,其中一个主要的特点就是在CPU单元上,增加了一个外置的RS-485的FXZN-485-BD通讯板,可以很方便地和外部设备进行串行通讯。
1、在用双绞线场合下,将330欧1/4千瓦终端电阻接与端子SDA与SDB和RDA与RDB间。
2、在用单绞线,将110欧1/2千瓦终端电阻接与端子RDA与RDB间。
三、通信协议及格式
龙源期刊网 http://www.qikan.com.cn
网络能有序安全运行的一个很重要原因,就是它遵循一定的规范,就是说,信息在网络中的传递同人在街上行走一样,也要用规则来约束和规范的。网络里的这个规则就是通讯协议。换句话说,通讯协议是网络社会中信息在网络的计算机之间、网络设备之间及其相互之间\"通行\"的交通规则。
在不同类型的网络中,应用的网络通讯协议也是不一样的。虽然这些协议各不相同,各有优缺点,但是所有协议的基本功能或者目的都是一样的,即保证网络上信息能畅通无阻、准确无误地被传输到目的地。
通讯协议也规定信息交流的方式,信息在哪条通道间交流,什么时间交流,交流什么信息,信息怎样交流,这就是网络中通讯协议的几个基本内容。 通讯格式:
例如:要读出站号为0的Fx2n系列PLC的X00到X08共9点的状态值,延时100ms,假设采用Communication Format(D8120)的Format1方式:
注释:请求 站号 PLC号 命令 延时 元件首地址 元件数量 和效验 代码:ENQ00FFBRAX00000942
ASCⅡ码:05H30H30H46H46H42H52H41H58H30H30H30H30H30H35H34H32H 您只要将以上兰色部分的代码以字符串形式(VB中可以表示为CHR(5)&\" 00FFBRAX00000942\")发送到PLC,就会有正确的回应信息,如下: 注释:头站号 PLC号 元件首地址 尾 和效验 代码:STX00FF001101101EXT05
ASCII码:02H30H30H46H46H30H30H31H31H30H31H31H30H31H03H30H35H 若发送码有误,则有以下回应: 注释:头站号PLC号和效验 代码:NAK00FF06
ASCII码:15H30H30H46H46H30H36H
龙源期刊网 http://www.qikan.com.cn
四、通讯程序的设计
在PLC与上位机通信之前,必须对RS-485通讯端口进行初始化,使两者按相同的格式通讯。初始化参数包括波特率、起始位、数据位、停止位和奇偶校验等。FX2N的RS-485通讯口一般设置为9600bps、8个数据位、1个停止位、无校验,因而只需对上位机的RS-485端口进行初始化即可。通讯形式由特殊数据寄存器D8120设定。由D8120设定只在由RS指令驱动时有效,因此在指令后改变D8120值,此设定值不能被实际接受。 上位机的通讯程序用VB语言设计: '********通讯:读PLC,TX通讯标****** txbz(1)=1 Ifplcsz1=\"\"Then
MSComm1.OutBufferCount=0 MSComm1.InBufferCount=0
MSComm1.Output=Chr$(5)+\"01\"+\"FFWR0D010009\"+Chr$(13)+Chr$(10) t=timeGetTime() Do
DUMMY=DoEvents()
Loop Until MSComm1.InBufferCount >= 41OrtimeGetTime()-t>400'read len b$=MSComm1.Input'输入值
' b$=\"01\"+\"FFFFFFFFFFFFFFFFFF\"'测试
MSComm1.Output=Chr$(6)+\"01\"+\"FF\"+Chr$(13)+Chr$(10)'SENDack IfMid(b$,2,4)=\"01\"+\"FF\"Then re(1)=b$:txbz(1)=0Else txbz(1)=1
Iftxbz(1)=0ThenTXINF=\"通讯状态:正常\"Else TXINF=\"通讯状态:故障\" MSComm1.InBufferCount=0
龙源期刊网 http://www.qikan.com.cn
MSComm1.Output=Chr$(5)+\"01\"+\"FFBW0M040008\"+Trim(msend)+Chr$(13)+Chr$(10) t=timeGetTime() Do
DUMMY=DoEvents()
Loop Until MSComm1.InBufferCount>=0Or timeGetTime()-t>100 MSComm1.Output=Chr$(6)+\"01\"+\"FF\"+Chr$(13)+Chr$(10)'SEND ACK '------写M400-M407后延时----- MSComm1.OutBufferCount=0 t=timeGetTime() Do
DUMMY=DoEvents()
Loop Until timeGetTime()-t>200'read len End If 五、应用
在选煤厂生产设备集中控制系统中,我们选用工业控制微机和PLC组成监控系统,按照以上方法设计了通讯系统,洗煤生产的各种参数和状态由PLC采集后,传送给上位机,上位机根据PLC传送的设备运行及其他数据信息,按一定的控制策略优化处理后,再传送给PLC,控制洗煤生产过程。通过实践应用,其通讯准确,可靠,故障率低,是监控系统中应广泛采用的通讯方式。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务