基于VB的PLC与计算机通信

上传人:飞*** 文档编号:40567473 上传时间:2018-05-26 格式:DOC 页数:9 大小:55KB
返回 下载 相关 举报
基于VB的PLC与计算机通信_第1页
第1页 / 共9页
基于VB的PLC与计算机通信_第2页
第2页 / 共9页
基于VB的PLC与计算机通信_第3页
第3页 / 共9页
基于VB的PLC与计算机通信_第4页
第4页 / 共9页
基于VB的PLC与计算机通信_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于VB的PLC与计算机通信》由会员分享,可在线阅读,更多相关《基于VB的PLC与计算机通信(9页珍藏版)》请在金锄头文库上搜索。

1、在工业控制领域中,PLC 作为一种稳定可靠的控制器得到广泛的应用。但它也 有自身的一些缺点,即数据的计算处理和管理能力较弱,不能给用户提供良好 的界面等。而计算机恰好能弥补 PLC 的不足,它不但有很强的数据处理和管理 能力,而且能给用户提供非常美观而又易于操作的界面。将 PLC 与计算机结合, 可使系统达到既能及时地采集、存储数据,又可处理和使用好数据,两者结合 的关键是 PLC 与计算机之间的通信。本文以 OMRON 公司的 CPMIA 小型 PLC 为例, 详细的讨论了 PLC 与计算机通信的原理和用 VB 如何实现 PLC 与计算机的通信。 2 2 通行原理与方法通行原理与方法 上位机

2、要能够通过 PLC 监控下层设备的状态,就要实现 上位机与 PLC 间的通信,一般工业控制中都是采用 RS232C 实现。上位机首先向 PLC 发送查询数据的指令(实际上是查询 PLC 中端子的状态和 DM 区的值等), PLC 接收了上位的指令后,进行校验(FCS 校验码),看其是否正确,如果正确, 则向上位机传送数据(包含首尾校验字节)。否则,PLC 拒绝向上位机传送数据。 上位接收到 PLC 传送的数据,也要判断正确与否,如果正确,则接收,否则, 拒绝接收。由于 CPM1A 没有提供串行通信口,我们利用其提供的外设端口实现通信。 PLC 与计算机之间的连接是通过 OMRON 提供的专用电

3、缆 CQM1-CIF01 来实现的,其硬件连接图如图 1 所示。3 3 PLCPLC 与计算机间的通信规约与计算机间的通信规约计算机与 PLC 间的通信是以“帧”为单位进行的,并且在通信的过程中, 计算机具有更高的优先级。首先,计算机向 PLC 发出命令帧,然后,PLC 作出 响应,向计算机发送回响应帧。其中命令帧和响应帧的格式如下:(1) 命令帧格式。为了方便计算机和 PLC 的通讯,CPM1A 对在计算机连接 通信中交换的命令和响应规定了相应的格式。当计算机发送一个命令时,命令 数据主准备格式如图 2 所示。其中放在首位,表示以开始,设备号为上位机识别所连接的 PLC 的设备号。 识别码为

4、命令代码,用来设置用户希望上位机完成的操作,FCS 为帧检验代码, 一旦通信出错,通过计算 FCS 可以及时发现。结束符为“*”和 CR 回车符,表 示命令结束。(2) 响应帧格式。由 PLC 发出的对应于命令格式的响应帧格式如图 3 所示。其中,异常码可以确定计算机发送的命令是否正确执行。其它的与正文中的含 义相同。正文仅在有读出数据时有返回。 WWW_PLCJS_COMPLC技.术_网(可编程控制器技术门户)4 4 通信程序的设计通信程序的设计 为了充分利用计算机数据处理的强大功能,我们可以采 用计算机有优先权的方式,在计算机上编写程序来实现计算机与 PLC 的通信, 计算机向 PLC 发

5、出命令发起通信,PLC 自动返回响应。本文中采用 VB 来编写计 算机与 PLC 间的通讯程序。在 VB 中提供了通信控件应用通信控件(MSCOMM), 实现通过串行端口传送和接受的功能。下面介绍 MSCOMM 控件的属性:*CommPort:设定通信连接端口代号,程序必须指定所要使用的串行端口号, Windows 系统使用所设定的端口与外界通信。*PortOpen:设定通信口状态,若为真,通信端口打开,否则关闭。*Settings:设定通信口参数,其格式是“bbbb,p,d,s“,其中 bbbb 为通信速率(波特率),p 为通信检查方式(奇偶校验),d 为数据位数,s 为停止位数,其设定应与

6、 PLC 的设定一致。*Input:将对方传送至输入缓冲区的字符读入到程序。*Output:将字符写入输出缓冲区。*InBufferCount:传回接收缓冲区中的字符数。*OutBufferCount:传回输出缓冲区中的字符数。 OnComm 事件发生时的数值码*OnComm 事件:无论是错误或事件发生,都会触发此事件。(1) 控件参数的初始化。初始化程序如下:Mscomm.ComPort=2 使用串口 Com2Mscomm.Settings=“9600, E, 7, 2“ 波特率 9600,偶校验,7 位数据位,2 位 停止位Mscomm.PortOpen=True 打开通信端口,准备通信(

7、2) 计算校验码 FCS,计算 FCS 的 VB 自定义函数如下:Function FCS(ByVal InputStr As String) As StringDim Slen, i, Xorresult As Integer Dim Tempfes As StringSlen=Len(InputStr) 求输入字符串长度Xorresult = 0For i = 1 To SlenXorresult = Xorresult Xor Asc(Mid$(InputStr, i, 1) 按位异或Next iTempfes=Hex$(Xorresult) 转化为 16 进制If Len(Tempfe

8、s)=1Then Tempfes =“0”+TempfesFCS = TempfesEnd Function(3) 计算机与 PLC 通信程序。主要是一个自定义函数。Function ReadData(ByVal InputStr As String, ByVal Num As Integer) As StringDim OutputStr As StringDim InString As StringWWW_PLCJSCOMPLC技术_网(可编程控制器技术门户)Dim ReturnStr As StringDim EndString As StringDim FCSString As Str

9、ing Dim ReturnFCSString As String)MSComm.InBufferCount=0WWW_PLCJS_COMPLC技.术_网(可编程控制器技术门户)OutputStr=InputStr+FCS(InputStr)+“*” 给出命令帧MSComm.Output=OutputStr+Chr$(13) 向 PLC 传送命令帧Do(可编程控制器技术门户)DoEventsLoop While MSComm.InBufferCount ReturnFCSString ThenReadData = “Error“Exit FunctionEnd IfReturnStr = Mid$(InString,Len(InString) - Num - 3, Num)ReadData = ReturnStrEnd Function从上面程序可以看到,计算机对 PLC 返回的响应帧要进行 FCS 校验,并利用异常码排除返回的异常数据,这样不但可以提高计算机获取信息的正确性,而且 提高了计算机监控的实时性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号