首页 >技术文章 > 网络与通讯 > 详细内容
基于西门子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中嵌入汇编直接对端口操作实现通讯(如

1】【2】【3
您可能感兴趣的文章
最新文章
此文涉及的厂商信息
相关作者文章
相关厂商
热门文章
CEC博客