基于西门子S7-226 PLC的分布式条码监控系统
1 系统功能
该系统是一个分布式条码监测系统,它通过各闸口条码扫描仪自动识别经过的条码标志,从而判断是否应该放行以及应当采取的措施。系统根据读单情况按预先设定流程动作做相应处理,包括开闸放行、落闸、各种非正常情况下的报警并自动闭锁、各项数据送上位机处理、接收上位机指令并相应动作、接收上位机组态命令等等,系统自动检测当前工作状况并能在出错的情况下安全退出。
3 系统结构
过往车辆上的条码由条码扫描仪读入并通过通讯转换rs232/rs485送入s7 226 plc 的port0口,s7 226 plc的port1口连接pc机。
1. plc s7-226
simatic s7是西门子公司生产的具有很高的性能价格比的微型可编程序控制器,它具有结构小巧,运行速度高,价格低廉及多种集成功能等特点。它主要包括如下部件:
① 中央处理器(cpu) ②输入和输出(i/o) ③编程口
s7-226的编程环境
西门子公司专为simatic s7-200系列plc设计了编程软件step 7 micro/dos和micro/win v2.0以及当前的新版本micro/win v3.2,它们主要用于用户开发simatic s7-200系列plc的控制程序,以及实时监控程序的执行状态。这两种编程环境都方便易用。
s7-226的其它特性
① 高速计数器:高速计数器用来记录电频率高达7khz的脉冲,并可连接两个垂直900的脉冲串计数。使用s7-200可以更容易地定位,或对快速移动物体进行计数。
② 口令保护:由用户定义的口令,可防止对可编程序控制器及其内存进行非法访问。
③ eprom存储卡:为插入式内存卡,用于存储程序且不易丢失,以及无需编程设备进行程序移植复制。
④ 模拟量调节:模拟量调节是一种通过旋转位子盖板里面的微调电位器,来改变两个用户变量的硬件方法,这些变量可以手动改变以实现微调控制。
⑤ 强制功能:可用于强制控制任何输入和输出点。强制功能,可以在run或stop方式下使用。
⑥ 实时时钟:可由程序指令访问,用于控制日期。
⑦ 脉冲输出:可选为两个50%负载周期的脉冲串输出控制,或特定的脉宽调制输出控制。
⑧ 自由接口方式:用户可用梯形图编程来定义通讯口参数,提供与不同智能设备的连接。
⑨ 特殊标志:在可编程序控制口与你的程序之间提供状态及控制功能的内部数据位。
⑩ 符号地址:允许你在程序中使用名称作为i/o点的地址。
2.条码扫描仪
采用美国metrologic公司的ms700 i串行激光条码扫描仪,扫描速度达2000线 / 秒,可靠扫描距离在0—7英寸区域内,在扫描区内有20条激光扫描线,分五个方向对条形码进行扫描,可选择12种条形码码制,通过rs 232接口与plc进行通信。与ccd扫描仪相比,激光扫描仪首读率高,能高速扫描识读任意方向通过的条码且对操作者要求低,实际应用中效果很好。
3.中文显示屏
中文显示屏使用自定义通信协议通过rs 485接口与plc通信。
4 软件设计
1、plc软件设计
(1)plc与pc的通信及条码识别
plc与pc之间的通信采用rs-485/rs-232方式,信号的转换由rs-232/rs-485转换器完成。以下简要介绍s7-200系列与自由口功能有关的寄存器smb2,smb3,smb30,它们主要用于自由口通讯方式的确定及运行管理。
控制字寄存器smb30用于存储通讯方式控制字,由用户写入,属于可读写的特殊标志位寄存器。其格式如下:
mm:(通信协议)00 ppi协议(从机)
01 自由口协议
10 ppi协议(主机)
11 保留(缺省为ppi从机)
bbb:(波特率) 000~111依次对应38400 bps ~ 300 bps波特率
pp:(校验方式) 00 无校验
01 偶校验
10 无校验
11 奇校验
通讯接收字符缓冲器smb2用于存放在自由口通讯方式下接收到的当前字符,它是一个暂存寄存器,一般应在下一步取走其中的内容。
通讯校验结果寄存器smb3,在作自由口通讯时,plc的通讯接口按由smb30规定的奇偶校验方式对所接收到的信号作校验。若检测到错误,plc自动将smb3.0置1,根据此标志位,可决定当前信息的取舍,同时还可在出错的情况下,将此错误位发送给对方,以便要求它重发。
在s7 226 plc中,集成了两个rs485数据通讯端口,可使用专用的位通讯协议作波特率高达38.4kbit/s 的高速通讯,并可按步调整。
以下为plc接收部分程序片段:
ld sm0.1 //第一个扫描周期接通
movb 9, smb30 //初始化port0口
atch int_0, 8 //指定port0口接收事件由中断0处理
movd &vb101, vd96 //指针vd96指向vb101开始的v寄存器区
movd &vb0, vd36 //vd36也指向vb101开始的v寄存器区
movb 0, vb41 //接收字符个数清0
下面为中断0片段(接收并存储):
ld sm0.0 //一直接通
movb smb2, *vd36 //只要接收到字符就存入指针vd36所指向的区域,
//即vb101开始的v寄存器区
incd vd36 //指针下移,为接收并存储下一字符作准备
incb vb41 //字符计数个数加一
当plc需要向pc传送数据时,可以通过以下代码实现:
plc发送部分程序片段:
ld sm0.1 //第一个扫描周期接通
movb 9, smb130 //初始化port1口
movb 14, vb100 //将14存入vb100中
xmt vb100,1 //指定port1口发送自vb101开始的v寄存器区,
//发送字符个数由vb100的内容决定
以下为plc接收条码并判断部分:
ldb= smb2, 10 //收到换行符,条码结束
lps
movd &vb0, vd36
ab<> vb41, 14 //总共收到条码字符数不等于14,出错,
s m0.1, 1 //置位m0.1
lrd
ab=vb41, 14 //总共收到条码字符数等于14,正确,
r m0.1, 1 //复位m0.1
lpp
movb 0, vb41 //接收字符个数清0,为下一次接收作准备
(2) 条码扫描仪与plc的通信
metrologic ms700i可以通过开机扫描设置条码而设定通信协议及条码类型,并可以通过连机方式从一台扫描仪“克隆”工作方式从而达到成组设定的目的。条码扫描仪与plc之间的通信采用rs232/rs485方式,使用条码扫描仪自带通讯电缆。
(3) 显示屏与plc的通信
由plc根据条码扫描情况发送给显示屏相应的信息用以显示当前状况,使用rs485通讯协议。通信格式为:头尾各为十六进制02和03以标志信息起始,中间为ascii码的状态信息。
2、上位机软件设计
pc机的监控程序用delphi5.0完成,分为组态环境和运行环境两部分。组态环境下,用户可对每一闸口进行plc参数、状态设定及条码设定;运行环境下,对各闸口实时监控,必要时发出控制命令,并具备历史数据存储和报表打印功能。
考虑通信方案如下:
(1) 引用vb的mscomm控件或第三方通信控件;
(2) 通过delphi中嵌入汇编直接对端口操作实现通讯(如bios串行通信功能调用 int 14h);
(3) 调用windows api 函数实现;
由于方案1存在发布问题,方案2存在一定危险性,所以在实际开发过程中我们采用方案3,通过createfile、closehandle、readfile、writefile、setcommstate、getcommstate等api函数及dcb设备控制块的操作实现pc-plc快速可靠的通信。
展开全文
- 供应商
- 上海浩淼自动化设备有限公司
- 联系电话
- 086 021 51696915
- 手机号
- 18917689340
- 联系人
- 杨青
- 所在地
- 上海市奉贤区柘林镇王家圩村团泾301号第二幢