点击【 大 中 小 】,可以选择字体的大小,以便你阅读.
1 引言
PLC(可编程逻辑控制器)在工业自动化中得到了非常广泛的应用,从起初的简单逻辑动作控制到现在的集网络,复杂数据运算,通信为一体,其功能和应用领域在未来还将会进一步地被拓宽。但在数据运算,图象处理以及数据存储等方面依然是PLC比较弱的方面,若能结合32位或64位计算机一起使用,结合两者的长处必定能取得较好的使用效果。
2 系统整体设计
参见图1,在原理示意图例中,通过松下PLC自带的温度数据读取单元对热敏电阻阻值的变化量进行A/D转换后将数据存储到PLC的“DT90040”和“DT90041”两个数据寄存器,这两个寄存器分别对应了CH1和CH2两个物理通道。松下PLC的工作扫描周期为0.5ms,温度数据将在每个周期更新一次。

图1 原理示意图
利用个人计算机的串行通信端口以10ms的扫描周期从PLC中将数据取出后存到动态数组中,在通过PICTURE控件以画图的方法将温度变化曲线表示出来。欲保存所取得的数据时可将数据输出到指定的EXCEL文件中。
3 系统的实现方法
3.1 PLC和VB6.0的通信与数据传输处理
计算机和PLC之间通信的时候,相互间传输的数据为4位16进制BCD码,当通过计算机的串行口按照一定的规则向PLC发出数据后,PLC在受到指令后也将返回一段有规则的代码,而笔者所需要的信息就包含在那一段返回码中。在这里,可将计算机串口和PLC的通信格式都设为:
波特率:115200B;
校验位:基校验;
数据长:8位;
停止位:1位;
松下FP系列PLC的通信协议MEWTOCOL-COM命令格式如下:指令格式。
指令信息:

应答信息 (正常时):

应答信息 (发生错误时):

通过查阅FP系列用户手册,可以发现热敏电阻值变化在“DT90040”和“DT90041”寄存器中得以体现,那么若能读出这些值,就可以对数据进行保存处理等相关操作。
对数据寄存器读取命令格式为:

PLC接受到上述指令后会返回下列代码:
读取成功

读取失败

在所接受到的数据的排列格式和我们正常思维所想的是不一样的,其排列如下:

Data (4 characters)
例:DT1105 =K13639( 3547H)
通过计算机RS-232口将下列数据发出后:

这样的现象在串口通信中是很常见的,希望读者在使用时务必加以充分的理解注意。
3.2 数据读取处理详细
在介绍了以上PLC和计算机通信的规则方法后下面将讲解如何具体来实现准确的数据读操作。
参见图2,在按下开始按钮后将执行下列代码:

图2 数据读取
Private Sub Command1_Click()
Dim d1 As String
d1 = "100"
Command1.Enabled = False
Command3.Enabled = True
nk = 10000 / Val(Text4.Text)
If Check1.Value = 1 Then
Timer1.Enabled = True
Picture1.Cls
e = 0
e1 = 0
re = ""
End If
If Check1.Value = 0 Then Timer1.Enabled = False
If Check1.Value = 0 Then
k = AreaReadD(d1, d1, r)