软件负责捕获进纸信号,然后模拟人手按钮,启动感应器工作,读取到条形码信息后进行判断,根据判断结果,进行不同的输出,同时还可以同上位机通信。
软件工作过程中,为了实时捕捉请求信号的输入,对信号输入的读取采用中断方式。接收到信号后,置相应请求事件标志,而对请求信号的处理在中断外进行,这样既可以有效捕获到请求输入信号,又避免中断程序过长时间占用CPU资源。
主程序上电初始化后,依次查看各个事件标志,若发现存在该事件请求,则马上对该事件处理,处理完毕后清除该请求标志。所要处理的事件包括:捕获进纸节拍,接收计算机发来的数据,条形码读取到后的比对判断以及判断后的处理等。整个系统流程如图4所示。
图4 主程序流程图
进纸节拍是由外部进纸机构触发的,软件上采用了外部中断的方式。通信事件由软件的串行接收中断触发,条码处理事件则由接收数字条码信号的高优先级中断触发。
设置CIPHER接口板以PS/2键盘的方式发送条形码内容,其接口信号时序如图5所示。
图5 条形码阅读器数字接口时序
而其他两个事件,错误书帖和白纸事件则来自于软件进行条码信息的比对结果。
① 处理进纸节拍信号处理
在检测到条形码读入请求—进纸信号事件后,应该启动条形码阅读器,读取条形码信息。阅读器上原来的手动按扭改造为由继电器触电模拟,将继电器闭合则可以完全实现开启阅读器的目的。
② 处理条形码判断的事件
单片机接收到完整的条形码信息后,置位条形码判断事件。在处理判断事件时,首先要将读到的条形码和设定好的基准信息比对。由于条形码在使用键盘接口传送数据时,每一个数字或字符的编码规则是“通码和断码的方式”,即要传送的每个字符都包括三个字节:“编码+04F+编码”。所以在进行比对时要注意基准条形码指针和待判定条形码指针的移动:基准指针每次移动1字节,而待判指针要移动3字节。
读取条形码后进行判断的状态迁跃如图6所示。
图6 条形码判断状态图
在书帖错误状态下,单片机将根据设定好的软件输出告警指示信号,并向书帖剔除设备输出驱动控制信号,剔除错误书帖;若只在流水线最后安装一台书帖剔除设备,单片机将开始对进纸节拍计数,当该错误书帖经过后,单片机向书帖剔除设备发出信号,剔除设备将包括该错误书帖的书帖集剔除。
3 计算机通信部分
在配页机流水线上,每个装了书帖的配页站都要安装一个阅读器和嵌入式控制系统,而这所有书帖检测设备还可以通过总线连接到计算机,通过计算机进一步完成书帖统计、查询等功能。
在物理层设计上,采用成熟的RS485串行通信总线连接到不同的检测设备和计算机;在链路层设计中,为保证数据帧可靠的收发,除了校验和之外,还有数据帧的特殊帧头字节和帧尾字节等,避免链路上的干扰。
4 数据库部分
计算机上使用VC++6.0编写人性化的操作界面,使用ADO(ActiveX Data Object)管理数据库。运行期间通过执行SQL命令取得所要获取的结果记录集。
总结
该系统可以使用在任何带有条码的物品检测系统中,针对不同的应用需求,只要根据现场情况,将不同的电气机械机构连接到该系统的输出端子上,即可以按照所需求的控制逻辑进行自动检测。