图2 系统软件任务分配
上位机的软件为LabVIEW7.0,通过PC-1500PFB PROFIBUS通讯卡于PLC交换数据。该软件具有运行速度快,数据分析和数据处理的函数齐全,编程速度快,界面友好等特点。在人机界面中,对各种类型的测量和控制的试验进行编码,当操作者选择了相应的实验后,通过通讯将该实验编码及相关的参数一起发送到PLC中的特定DB块中,PLC程序得到实验编码后进行初始化,然后等待操作者按下启动按钮,程序才能真正地运行。在测量和控制中采集到的数据以数组的形式存放在不同的数据块中。上位机在传送完实验参数后,将运行数据接收子程序,将PLC中DB块内的实验过程数据获得并存储在上位机中,同时在上位机可以实时显示这些数据。
该测控系统中包含了许多子程序,现将其中的2个为例说明编程思想。
4.1 增加、停止、减少子程序
增加、停止、减少子程序如下:
AN #minus_signal
JC dec
L #reference
L #step
+I
L #max
>I
JC out1
TAK
out1: T #reference
BEU
dec: AN #plus_signal
BEC
L #reference
L #step
-I
L #min
<I
JC out2
TAK
out2: T #reference
BEU
该子程序是利用开关量,以脉冲计数的方式产生数据。具体方法是利用2位自返回开关(左为减少,右为增加),在每个调用周期中增加或减少一个数的方法产生数据,可以作为一个控制量的设定值。在调用该子程序时,将产生的数据限制在一个范围内,就能方便的使用了,这样使用开关量就能完成模拟量的设定。
4.2 数据采集标定公共子程序
在此程序中,只需要输入测量值、该信号的工程量最大值和最小值,即可将数据转换为相应的工程量值。编程的公式为:
Y_Real=(Y2-Y1)/(X2-X1)×(X_Real-X1)+Y1 (1)
其中,Y1、Y2分别为工程量的最小值和最大值。
数据采集标定子程序如下:
L #X_Real
L #X1
<=R
JC Min
L #X_Real
L #X2
>=R
JC Max
L #X2
L #X1
-R
T #T_Real01
L #Y2
L #Y1
-R
L #T_Real01
/R
T #T_Real02 //计算的斜率值
L #X_Real
L #X1
-R
L #T_Real02
*R
L #Y1
+R
T #Y_Real
SET
SAVE
BEU
Min: L #Y1
T #Y_Real
SAVE
BEU
Max: L #Y2
T #Y_Real
SET
SAVE
BE
4.3 软件的调试
在软件的调试过程中,要对有关组织块的功能进行详细的阅读,以便合理地运用到自己的程序中,增强程序的容错能力。如当系统中模块或 I/O出现故障,CPU将会调用 OB85,并不会使整个程序停止。当出现DP网错误时,CPU将调用OB82。在这些组织块中并不需要编程序,只要将其放在程序中。
另外SIEMENS公司提供的Step7模拟器对于离线调试程序具有很大的帮助。
5 结束语
该实验车采用了稳定可靠、抗干扰性强的PLC系统和数据采集及数据处理具有绝对优势的软件LabVIEW,充分利用了二者的优点。该测量车的移动灵活,测控精确,人机界面友好直观,数据处理方便迅速,可以应用到各个测控领域,具有良好的推广价值。
参考文献
[1] SIMATIC S7-300、S7-400语句表编程参考手册.2004
[2] SIMATIC S7-300、S7-400T型图编程参考手册.2004
[3] 雷振山. LabVIEW7 Express实用技术教程. 北京:中国铁道出版社,2004