1 系统功能结构
如图1,该系统在物件运送的辊道上安装条码扫描器,当物件通过时自动识别物件上的条码标记,从而判断应采取的动作。系统根据读到的条码信息,按事先的约定进行处理,包括物件要存放的位置、是否放行、非正常情况的报警等、并和plc、上位计算机进行数据交换。
物件的条码由条码扫描器读入并通过通讯转换送入plc的通讯口,我们采用的plc是s7-200系列的226plc。它是西门子公司生产的性能价格比很高的可编程控制器,已广泛应用于工业控制的各个领域。
2 软件设计
2.1 plc的条码识别
plc采用自由通讯口方式读取条码的信息,主要用到3个寄存器smb2、smb3、smb30。
通讯接收字符缓冲器smb2用于存放在自由口通讯方式下接收到的当前字符,它是一个暂存寄存器,一般应在下一步取走其中的内容。
通讯校验结果寄存器smb3,在作自由口通讯时,plc的通讯接口按由smb30规定的奇偶校验方式对所接受到的信号作校验。若检测到错误,plc自动把smb3.0置1,根据此标志位,可决定当前信息的取舍,同时还可在出错的情况下,将此错误信息发给对方,要求重发。
控制字寄存器smb30用于存储通讯方式控制字,由用户写入,属于可读写的特殊标志位寄存器,其格式如下:
2.2 plc程序设计
(1) 程序结构
plc的控制程序采用西门子的编程软件包step7完成, 通过上位机与plc进行程序传送, 其程序结构图如图2:
(2) 程序和注释
该程序从条形码阅读器接收信息再存入两个缓冲区,
从条形码解码器传出的信息是ascii码形式,所接受的条形码存在simatic内存中。这些数据可被程序利用,但本例中仅仅将信息存入接收缓冲区,可以用simatic s7-200程序包来查看。
main(主程序):初始化程序
sbro(子程序0):接收条形码
int 0(中断程序0):缓冲区0接收
int 1(中断程序1):缓冲区1接收
(3) 自由协议的定义
西门子
s7-200系列plc本机带有一个或两个(s7-226)485物理接口,此485口具有3种通讯协议:ppi、自由通讯协议、profibus协议。
p
pi协议主要是用来编程、ppi组网、hmi接口等;自由协议则可以由用户定义通讯协议,将cpu与任意通讯协议公开的设备联网,如上位计算机、打印机,条码器等等。所谓自由协议,用户可以通过设置特殊寄存器smb30、smb130(对应226的2#口)的参数改变485口的波特率、数据格式(数据位数、停止位、校验),以适应不同的通讯协议。226具有两个通讯口,可以同时与两个不同外设连接。
(4) 编程步骤
·首先设置通讯口,既设置smb30、smb130;
·根据外设的协议决定通讯协议;
·与通讯有关的指令及中断
指令简单,例如xmt99,0既可以完成最多255个字节(字节数由vb99内设置的数决定)的发送;而接收则要由中断程序完成,每收到一个字节的数据则产生一次中断,接受到的数据保存在接收缓存器(smb2)内,中断服务程序内您必须立即处理此数据,因为下一个接收的字节也要放在smb2中,也就是说接收缓存器的大小只有一个字节,本例只用到接受。
2.3 上位机监控软件设计
上位pc机与plc之间通过一个rs232/485转换器连接,上位pc机的监控程序采用北京亚控公司的组态王(kingview)完成。组态王是国内使用较多的工控平台,具有良好的人机界面和网络功能。在组态环境下,设计人员对plc进行参数、状态、条码设定;运行环境以人机界面的形式对条码信息监控,对plc发出控制命令,对有关数据存储报表,同时利用web功能使系统具有在线监控功能,即在上位机授权的情况下在任何一台联网的计算机上用标准的浏览器可远程监控。限于篇幅,监控程序不再详述。