[资料]b系列触摸屏在汽车玻璃镀膜装备上的应用
B系列触摸屏在汽车玻璃镀膜设备上的应用 关键词:宏指令 USEADMIN.DLL 自由通讯方式
内容简介:近年来触摸屏的性能不断的提高,以前一些只能由工控机完成的任务,现在也可以由触摸屏来完成了。本文以一个实际的工程案例为主,详细介绍了触摸屏是如何应用宏指令来完成这些任务的。
0 设备要求
此设备的是用来给汽车玻璃进行镀膜处理的,具体做法是将三种不同的涂料放至于
三个不同的容器内(如左图中,左侧工位所示),操作
员取出需要的涂料,倒入左图右侧工位的缓冲容器中;
然后,右侧工位装卡的汽车玻璃会在伺服电机的驱动下
匀速的转动,镀膜装置就会将涂料均匀的附着于汽车玻
璃的表面。每次换涂料之前,需要用不同的擦拭纸对已
镀膜的涂料进行擦拭,不同的涂料需要使用不同的擦拭
纸。
生产过程中,需要操作员手动装卡汽车玻璃于右侧
工位的卡具上,然后将取出左侧工位的容器的涂料,倒入缓冲容器中,按“循环”按钮,开始按照左下图设定的工艺参数,驱动伺服电机工作。由于涂料是通过操作员手动操作
实现的,因此,PLC程序在每个循环之间都会
有一个延时,用以让操作员可以更换涂料或进
行擦拭,左侧工位的涂料容器也是由伺服电机
驱动的,在需要向缓冲容器中倒入涂料时,不
需要操作员再分辨涂料的类型,工装可以自动
的将所需要的涂料停在操作员的左手边上。
以上,是用户对设备工艺的要求,这是一个相对简单的控制,没有什么特别复杂的地方。但用户除了对设备工艺要求以外,更关键的是对设备提出的管理方面的要求。这些要求包括:工艺参数的管理;操作人员的登录管理;设备随件单的打印等等。而这些操作,已远远超出了原来对触摸屏设备的定义,而到了一个新的、更高层次的应用。
1 DOP-B系列触摸屏的解决
上面提到了对触摸屏提出的各种管理方面的要求,其实各种要求的核心只有一个——就是产品必须具有可追溯性,即是由谁,什么时间,用什么样的工艺参数生产出来的什么样的产品。因此,各种管理的核心,就是首先要有人员登录的界面。
下图展示了设备运行时的初始化画面
只有将上图所示的数据填写正确,才会出现下图所示操作画面,并在操作完成后,形成打印画面,并将画面打印输出(如右图所示)。
用户要求“员工编号”、“零件号”均可以通过“管理员通道”进行添加、编辑、修改和删除。如果不通过管理员通道,自己“员工编号”可以自行修改对应的“员工密码”,因此,在修改密码之前,必须应答对原有的员工密码。
这是用户对设备管理功能的要求,如果使用过高级语言的人,一定会发现这种功能的要求是非常熟悉的,对~这就是Windows环境下useadmin.dll动态连接库的功能,如果此类设备使用工控机作为上位机,使用高级语言作为开发环境,我们只需要在初始化消息中装载useadmin.dll动态连接库,就可以方便的调用各种现有的对话框和函数,完成上述工作,但现在只能通过触摸屏的宏程序来完成了,还好,DOP-B系列触摸屏的宏指令够多,能力也很强大~
但是触摸屏毕竟不是工控机,有些功能的实现还是会比较困难的,例如:如果是工控机上直接使用useadmin.dll动态链接库,可以将“员工编号”一项直接设计为输入输出框,如果输入的字符串在系统中不
能找到,自然会出现错误提示~如
果触摸屏沿用这种思路进行程序
设计,无疑会增加宏指令的编制难
度和触摸屏的运行速度,不是一个
可取的方法。于是我们使用了“数据显示框”和“按钮”的组合方式,即在“数据显示框”上添加一个按钮,按钮的属性设为“不可见”,这样操作者在操作时,只需触摸“数据显示框”就可弹出一个如上图所示的对话框,用户可以触摸员工编号前的选中标志,
然后触摸确定按钮,就会有左图所示的
对话框弹出,输入所对应的密码在触摸
确认按钮,触摸屏就会回到初始画面并
显示用户选中的员工编号;如果密码不
正确,密码输入框会清除所显示密码,操作者可以继续输入密码。此系统并没有做重复次数的要求,因为密码不仅可以是数字,也可以是字符,这样组合的方式很多,不会搞错。
如果需要新建员工信息,可以触摸“新
建员工信息”按钮;需要修改密码,可以触
摸“修改密码”按钮,弹出的对话框基本相
同,如右图所示:在输入新的员工编号时,
只需要密码与密码确认相同就可以了,如果
是操作者想修改密码,就必须先输入原来的
密码,如果原密码输入错误,则按“ok”按
钮时三个输入框的密码全被清除,如果新建
密码与确认密码不符,则新建密码与确认密
码框被清除,如果都正确输入的话,对话框
消失,新的密码替换老密码成功。
至于删除程序,也没有像windows界面那样使用指针的方式,而是采取了一种相对简单的办法,就是分头、尾和中间的处理方式:如果是头,那么最尾部的数据补上;如果是中间也是这种处理,如果是尾数据,则直接删除掉。由于采用了显示选择的方式,因此,位置的视觉效应用户并不在意。
还有一个用户的重要需求,就是打印功能,用户要求必须打印出条码,以便日后可以快速识别,市场上可以满足需要的打印机很少,即便满足此苛刻的要求,触摸屏也不支持其驱动,因此,只好利用宏程序自行编制打印机驱动程序,来完成此功能。
2 触摸屏的宏程序设计
为了能更快的编制程序,并尽量减少错误的发生,我对操作进行了一些限定,首先
是员工编号与密码都固定长度,这样,判断的循环数可以大大减少,程序调试过程中也
不容易出现BUG。
因此,程序编制量大大降低,编制后的新建员工程序如下:
$5=3
$6=120 $7=130 BITON $8.0 FOR $5 IF *$6 != *$7
BITOFF $8.0 ENDIF
$6=$6+1 $7=$7+1 NEXT
if $112==0 bitoff $8.0 endif
if $122==0 bitoff $8.0 endif
if $132==0 bitoff $8.0 endif
IF $8.0 == OFF $120=0 $121=0 $122=0 $130=0 $131=0 $132=0 ENDIF
IF $8.0 == ON $9=$140*20 $9=$9+201 *$9=$110 $9=$9+1 *$9=$111 $9=$9+1 *$9=$112 $9=$9+1 *$9=$120 $9=$9+1 *$9=$121 $9=$9+1 *$9=$122 $140=$140+1 $20=1
ENDIF
BITOFF $0.0
大家可以看到,由于对格式进行了强制的规定,使得程序量大大减少了,这还表现
在删除程序上,如下所示程序清单
if $310<=$140
if $140==1
$5=6
$316=201
for $5
*$316=0
$316=$316+1
next
$140=0
endif
if $140>1
if $310==$140
$5=6
$316=$140*20
$316=$316+181
for $5
*$316=0
$316=$316+1
next
$140=$140-1
endif
if $310<$140
$314=$310*20
$314=$314+181
$315=$140*20
$315=$315+181
$5=6
for $5
*$314=*$315
*$315=0
$314=$314+1
$315=$315+1
NEXT
$140=$140-1
endif
ENDIF
Endif
可见,程序的设计思路是离不开操作的思路,如果一味的遵循原有的操作方式,程序的
编制会遇到极大的困难。还有的操作,包括修改的程序清单如下所示:
biton $8.2 if $503!=$520 bitoff $8.2 ENDIF
if $504!=$521 bitoff $8.2 ENDIF
if $505!=$522 bitoff $8.2 ENDIF
if $8.2==off $520=0
$521=0
$522=0
$530=0
$531=0
$532=0
$540=0
$541=0
$542=0
endif
if $8.2==ON
biton $8.3
if $530!=$540
bitoff $8.3
ENDIF
if $531!=$541
bitoff $8.3
ENDIF
if $532!=$542
bitoff $8.3
ENDIF
if $8.3==off
$530=0
$531=0
$532=0
$540=0
$541=0
$542=0
endif
if $8.3==on
$5=3
$550=$310*20
$550=$550+184
$551=540
for $5
*$550=*$551
$550=$550+1
$551=$551+1
next
bitoff $8.3
bitoff $8.2
$6=500
$5=50
for $5
*$6=0
$6=$6+1
NEXT
$20=1
endif
endif
以上,就是管理功能实现的基本代码,并不是特别的复杂,但基本数据库所有的特
征(删、编、改、查)都具备了~以上只是我为用户编制的实例程序,在正常使用时,
只需要注意预留出足够的掉电保存区空间就是了。
还有就是打印部分的程序了,那就实在没什么技巧可讲了,只有依照打印机的通讯
,一点点的编写了,一下列出了初始化打印机的程序清单,细节指令就不一一列出
了:
$9999 = INITCOM(1, 0, 1, 0, 0, 6, 0)
SELECTCOM(1) $1000=3849h $1001=312ch $1002=302ch $1003=3130h $1004=0dh $1005=3751h $1006=3935h $1007=322ch $1008=0d30h $1009=3671h $1010=3933h $1011=0dh $1012=3553h $1013=0d30h
$1014=3148h $1015=0d30h $1016=425ah $1017=0dh $1018=3052h $1019=302ch $1020=0dh $1021=0d4eh $1022=4f4ch $1023=3335h $1024=312ch $1025=2c30h $1026=3136h $1027=2c31h $1028=0d32h $1029=4f4ch $1030=3335h $1031=392ch $1032=2c33h $1033=3136h $1034=2c32h $1035=0d33h $1036=4f4ch $1037=3135h $1038=312ch $1039=2c30h $1040=2c33h $1041=3337h $1042=0d39h $1043=4f4ch $1044=3636h $1045=2c33h $1046=3031h $1047=332ch $1048=372ch $1049=3933h $1050=0d20h $1051=4f4ch $1052=3235h $1053=372ch $1054=3634h $1055=362ch $1056=3431h $1057=332ch $1058=0d20h $1059=4f4ch $1060=3335h $1061=312ch $1062=3139h $1063=362ch
$1064=3131h $1065=332ch $1066=0d20h $1067=4f4ch $1068=3235h $1069=322ch $1070=3634h $1071=362ch $1072=3231h $1073=322ch $1074=0d20h $1075=4f4ch $1076=3335h $1077=332ch $1078=3130h $1079=362ch $1080=3131h $1081=322ch $1082=0d20h $1083=4f4ch $1084=3335h $1085=332ch $1086=3535h $1087=362ch $1088=3131h $1089=332ch $1090=0d20h $1091=4f4ch $1092=3335h $1093=342ch $1094=3031h $1095=362ch $1096=3131h $1097=322ch $1098=0d20h $1099=4f4ch $1100=3335h $1101=342ch $1102=3436h $1103=362ch $1104=3131h $1105=332ch $1106=0d20h $1107=4f4ch $1108=3335h $1109=352ch $1110=3931h $1111=362ch $1112=3131h $1113=322ch
$1114=0d20h $1115=4f4ch $1116=3235h $1117=362ch $1118=3636h $1119=362ch $1120=3131h $1121=322ch $1122=0d20h $1123=4f4ch $1124=3032h $1125=2c39h $1126=3131h $1127=322ch $1128=352ch $1129=3930h $1130=0d20h $1131=4f4ch $1132=3733h $1133=2c30h $1134=3931h $1135=2c34h $1136=2c32h $1137=3732h $1138=0d32h $1139=4f4ch $1140=3235h $1141=2c35h $1142=3931h $1143=2c32h $1144=2c32h $1145=3732h $1146=0d33h $9999 = PUTCHARS($1000, 294, 500)
3 总结