基于西门子S7-226 PLC的分布式海关条码监控系统
技术分类:网络与通讯
发表时间:2008-06-06
p; 无校验
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中嵌入汇编直接对端口操作实现通讯(如