当前位置:首页 期刊杂志

PLC与工业控制计算机串行通信分析及应用

时间:2025-01-05

刘超强 黄存我

摘要:现代工业的自动化生产控制,已经从单一的直接面向控制某一生产过程的直接控制,发展到多层次的全面计算机集中制造系统(CIMS)。为满足现代工业自动化的需要,PLC一般均配有数据通讯模块,用来进行PLC之间、PLC与上位计算机之间的数据通讯,组成工厂生产自动化网络。本文主要探讨PLC与工业控制计算机串行通信分析及应用。

关键词:PLC;工业控制;计算机;串行通信

随着工业控制要求的不断发展,上位机监控已经成为工厂数据采集的一个重要环节。大多数控制系统都趋向于用通用工程软件(如Visual Basic,Visual C++,DELPHI等)编制上位机监控界面。Visual Basic易学易用,还提供了一套可视化设计工具,大大简化了程序界面的设计工作,同时其编程系统采用了面向对象、事件驱动机制,使用Visual Basic可以方便地完成从小的应用程序到大型的数据库管理系统的编程任务。

1计算机与FX系列PLC的通信

FX系列PLC根据使用的通信模块与通讯协议的不同,可分为4种通信模式。(l)N:N链接网络通信模式;(2)并行链接通信模式;(3)无协议通信模式;(4)计算机链接通信模式。

FX系列PLC可以通过编程口或通信口与计算机通信。通过编程口通信计算机只能与一台PLC通信实现和PLC中的软元件间接访问构成二级控制系统;通过通信口通信计算机可与多台PLC通信实行对PLC中的软元件直接访问构成总线型网络控制系统。PLC使用不同的通信适配器但通信规程和通信程序取决于编程口还是通信口与PLC无关。本文以三菱FX系列PLC为例介绍计算机与PLC串行通信的实行方法并利用VB6.0编写通信软件实现计算机对PLC工作状态的实时监控[1]。

2 PLC与PC间的通信协议

PC与PLC间的通信方式分为同步通信和异步通信两类。目前主流的通信方式有RS-232,RS- 422和RS-485,他们都是串行数据接口标准,是由美国电子工业协会EIA制定的一种串行物理接口标准,其中最常用的是RS-232通信方式。本案例采用RS-232的通信格式,在這种情况下需要设置波特率、奇偶校验位和停止位等参数,只要上位机和下位机这些参数设置一致就可以通信了。一般设置波特率为9600 b/s、偶校验、7位数据位、1位停止位。但是此种通信方式只能由上位机发出命令,PLC响应上位机发出来的命令,当PLC不能正确响应时,PLC返回响应错误标志。上位机发出的数据是以帧为单位发送和接收的。通常,一个数据由5部分组成。累加和是从STX后面一个字节开始累加到ETX的和,取它们ASCII码所得和的最低二位数。其中STX对应的16进制数位0x02,是判知传输资料的开始。命令字是对下位机所做动作的指示,比如要求读取或写入等[2]。

我们采用的是基于VB(Visual Basic)平台编写的驱动程序。VB是一个可视化的高级语言,为用户提供直观的工作环境,为监控系统建立良好的用户界面奠定了基础。VB采用事件驱动,编程与调试方便,可以快速地编制出性能良好的应用程序,通过对串行通信控件MsComm的简单配置,就可以完成串行口的读写操作,是上位机监控系统常用的开发工具。

在VB开发环境界面中,在“工具箱”栏处单击鼠标右键,在弹出的选项里选中“部件”项,然后在弹出的“控件列表框”里,选中“Microsoft Comm Control 6.0',控件。确定后,MSComm控件即被选中,可以将它添加到程序窗体中,开始设定控件的属性,以建立与串行口的连接[3]。

3 PLC串行通信在油管智能检测控制中的实现

3.1 油管检测系统

油管在辊轮带动下,匀速通过检测机构接受检测。当油管到达检测位时开始采集数据,当油管离开检测位时停止采集数据。检测位置的识别由安装在检测机构前方的光电开关完成,采用松下FP-X型PLC实时监测光电传感器的状态。通过与PLC的串行通信,计算机获得油管位置信号,从而根据油管的位置控制数据采集[4]。

3.2 计算机链接通信环境设定

PLC采用将USB作为虚拟的串行端口进行通信的方式,因此认为由USB所连接的FP-X型PLC是由计算机通过COM端口进行连接的。计算机链接的通信设置要通过编程工具FPWINGR来进行。在PLC系统寄存器设置中设置如下内容:

No. 411站号(PLC地址):可从1~99进行设定;

No. 412通信模式设置为计算机链接;在端口选择中,选择/内置USB0;

No. 414(COM2端口用)传送格式的设定:数据长度8bit,奇偶校验为奇校验,停止位1bit,终端代码CR(固定),始端代码无STX(固定);

No. 415速率的设定:速率固定为115200bps。

3.3 VB通信程序的开发

在检测台正前方装有光电开关用来感应油管是否到达检测位,其对应的PLC输入端子为X0。采用中间继电器R0存储X0的上升沿,R1存储X0的下降沿。

当油管进入检测机构时,R0为1并保持1S,此时开始数据采集;当油管离开检测机构时,R1为1并保持1S,此时停止数据采集。R0和R1的状态通过指令RCS读取。由于系统要反映PLC数据区的实时变化,所以在控件Timer1(100ms执行一次)里编写发出和接收指令的代码:

Private Sub Timer1_Timer()

Mscomm. InBufferCount = 0 '清空接收缓冲区Mscomm.Output = "% 01#RCSR0000" + "** " + Chr(13)'读取R0状态指令

Mscomm. Output = "% 01#RCSR0001" + "** " + Chr

(13)'读取R1状态指令

Form = 1 To 100

For n = 1 To 1500

stepstr =Mscomm. Input '读取串行口的数据

IfLen(stepstr)> 0 Then ExitFor

Nextn

resp = resp& stepstr

Nextm

IfMid(resp,1,9)= "% 01$RC120" Then '判斷R0状态

Datalogger_on '开始数据采集

End If

IfMid(resp,11,9)= "% 01$RC120" Then '判断R1状态

Datalogger_off '停止数据采集

End If

End Sub

"% 01#RCSR0000" + "** " + Chr(13)代表发送的命令为% 01#RCSR0000** CR,RCS代表通信指令为读取单个触点的状态信息,R0000代表R0。PLC收到该指令,会根据R0位的状态回复。若为/10,则响应信息为:% 01$RC120CR,RC表示触点状态读取,/10为触点状态,/200为不使用BCC校验时的输出字符;若为/00,则响应信息为:% 01$RC021CR。

结论

使用VB编写上位机软件的最大优势是直接在VB中引人了控件,简化了编程,使上位机界面更加简单。而且Windows系统也使用了大量的控件,如按钮、文本框等。只要熟练掌握了这项技术,对工控会有很大的帮助,特别在编写上位机程序方面。

参考文献:

[1] 王慧博. 探讨单片机与计算机的串行通信[J]. 电子制作,2013,14:159.

[2] 钱华,曹春泉. 基于VB的PLC与计算机间串行通信[J]. 机械工程与自动化,2013,06:197-198.

[3] 赵春晖. 基于VB的PLC与计算机串行通信的实现[J]. 黑龙江科技信息,2013,24:155-156.

[4] 封莉,张萌萌. 计算机与单片机的串行通信技术探究[J]. 煤炭技术,2013,03:253-255.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!