1. 引言
可编程控制器(Programmable Controller,简称PC)是一种数字运算操作的电子设备。它使用了可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作指令,通过数字或模拟输入/输出组件控制各种类型的机械或生产过程。PC具有功能齐全、应用灵活、操作维修容易方便和稳定可靠等特点,因此广泛用于工业现场控制。其典型应用方案是:采用PC作为下位机实现过程的自动控制,以微机为上位机,完成工业流程和工艺参数的显示以及控制参数的修改等功能。但是在一些危险和恶劣环境下,需要用微机远程控制PC系统的运行和停止。本文结合作者所开发的危险环境下控制系统,以三菱A2A 可编程控制器为例介绍VB远程控制三菱A系列可编程控制器的运行,并给出系统实现方法与示例程序。
2. 系统设置与协议
为进行系统控制需进行硬件和软件设置,这部分内容是系统实现的关键。系统利用RS232通讯接口线将PC(利用AJ71UC24通讯模块,25针)与微机的串行通信口(COM1,9针)进行连接。
2.1AJ71UC24的通信控制协议
PC的通讯模式(mode)开关设置为1。以下是Melsec-A PC 格式1通信协议的格式:
其中:RR为控制PC启动命令,RS为控制PC停止命令。
AJ71UC24通信模块所使用的主要控制字以及含义
2.2 AJ71UC24设置:
AJ71UC24的通讯参数设置均通过其DIP开关设置,本例的参数设置如下:波特率:9600,数据位:8,停止位:1,有求和效验,可以进行在线写。DIP开关设置如下表:
2.3 PC的运行开关设置
若实现利用VB程序进行PC控制,必须将PC的运行开关设置在ON的位置。运行开关设置与对应的控制结果如下表:
2.4 VB通信功能设计与实现
VB通过MSCOMM控件控制串行口,该控件屏蔽了通讯过程中的底层操作程序,用户只需设置和监视控件的属性和事件,就可很方便地实现串行异步通讯,它有事件驱动通信和查询通信两种方式,通过检查InBufferCount属性值来判断输入缓冲区中是否接受到相应数目的字符,为实现所述通信,应在窗体中加入一个通讯控件MSComm,控件的参数设置要与上述PC通讯模块AJ71UC24的设置相同。控制命令的传输采用即时传送方法。
3. 软件编程与实现
监控微机主要供系统管理人员对PC进行系统运行的控制。下面主要列出微机对PC进行控制有关的程序。本例是以单个PC为例,PC站号为00H,PC号为FFH。:
该功能的实现必须将PC运行开关扳到RUN位置。通过在Form中加入两个option按钮实现:第一选项为启动,命令为"RR";第二选项为停止,命令为"RS"。
Private Sub Option1_Click(Index As Integer)
Dim An_Msg, Kzh_Cmd ,rd, rdf, temp, temp1 As String
Dim i, rdd As Long
Select Case Index
Case 0
Kzh_Cmd = "RR" '启动PC系统
Case 1
Kzh_Cmd = "RS" '关闭PC系统
End Select
Screen.MousePointer = 11
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.InputLen = 0
rd = Chr$(5) + "00FF" + Trim(Kzh_Cmd) + "0"
rd=rd + Xy_hj(rd) '其中Xj_hj字符串效验求和函数
MSComm1.Output = rd
Do
dummy = DoEvents()
Loop Until MSComm1.InBufferCount >= 5
rdf = MSComm1.Input
temp = Mid(rdf, 1, 5)
If temp<> Chr$(6) + "00FF" Then
MsgBox "命令运行失败!!!", 16
End If
Screen.MousePointer = 0
End Sub