S7-200自由口通讯程序说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S7-200自由口通讯程序说明1

主程序:

LD SM0.1 // PLC上电第一个扫描周期

MOVB 16#05, SMB30 2 //1. 初始化自由口为波特率 19200bps,8数据位,无校验

MOVB 16#F0, SMB873 //2. 初始化RCV信息控制字节, RCV使能

// 检测信息开始字符和结束字符,检测空闲线信息条件

MOVB 16#7E, SMB884 // 设定信息开始字符为 16#7E ('~'字符)

MOVB 16#0A, SMB895 //3. 设定信息结束字符为 16#0A (换行字符)

MOVW +5, SMW906 //4. 设置空闲线超时为5ms

MOVB 255, SMB947 //5. 设置最大字符数为255

ATCH INT_0:INT0, 238 //6. 连接中断0到接收结束事件

ATCH INT_2:INT2, 99 //7. 连接中断2到发送结束事件

ENI //8. 允许用户中断

RCV VB100, 0 //9. 执行接收指令,接收缓冲区指向VB100

1 当S7‐200处于STOP模式时,自由口通讯模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由口模式下与S7‐200通讯的设备所使用的协议。

只有当S7‐200处于RUN模式时,才能进行自由口通讯。要使能自由口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置01。处于自由口通讯模式时,不能与编程设备通讯。

2 将PPI通讯转变为自由口模式,SMB30和SMB130分别配置通讯口0和通讯口1,并且为自由口通讯提供波特率、校验和数据位数的选择,8bit的配置字的构成如下:

Bit 7 6 5 4 3 2 1 0

□p□p□d□b□b□b□m□m

pp: 校验选择 00= 不校验 01= 偶校验 10= 不校验 11= 奇校验 d: 每个字符的数据位

0= 每个字符8位

1= 每个字符7位

bbb: 自由口波特率(bps)

000=38,400 001=19,200

010=9,600 011=4,800

100=2,400 101=1,200

110=115.2K 111=57.6K

需要S7‐200 CPU版本1.2或更高

mm: 协议选择

00=PPI/从站模式

01=自由口模式

10=PPI/主站模式

11=保留(缺省设置为PPI/从站模式)

3 SMB87: 端口0的接收信息控制字节(SMB187: 端口1接收信息控制字节):

Bit 7 6 5 4 3 2 1 0

□B7□B6□B5□B4□B3□B2□B1□B0

B7:

0=禁止接收信息功能

1 =允许接收信息功能

每次执行RCV指令时检查允许/禁止接收信息

B6:

0=忽略SMB88或SMB188 1=使用SMB88或SMB188的值检测起始信息 B5:

0=忽略SMB89或SMB189

1=使用SMB89或SMB189

的值检测结束信息

B4:

0=忽略SMW90或SMW190

1=使用SMW90或SMW190

的值检测空闲状

B3:

0= 定时器是内部字符定时器

1=定时器是信息定时器

B2:

0=忽略SMW92或SMW192

1=当SMW92或SMW192

中的定时时间超出时终止接收

B1:

0=忽略中断条件

1=用中断条件作为信

息检测的开始

B0:

始终为零

4 SMB88: 端口0的开始字符(SMB188: 端口1的开始字符)

5 SMB89: 端口0的结束字符(SMB189: 端口1的结束字符)

6 空闲线时间段(按毫秒设定)。空闲线时间溢出后接收的第一个字符是新的信息的开始字符。SMW90对应端口0;SMW190 对应端口1;SMB90/SMB190是最高有效字节,SMB91/SMB191是最低有效字节

7 SMB94 (端口0),SMB194(端口1): 要接收的最大字符数(1到255字节)。注:这个范围必须设置到所希望的最大缓冲区大小,即使信息的字符数始终达不到

8 如果有一个中断服务程序连接到接收信息完成事件上,在接收完缓冲区中的最后一个字符时,S7‐200会产生一个中断(对端口0为中断事件23,对端口1为中断事件24)

9 如果有一个中断服务程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)

INT0 中断:

//1. 如果接收状态显示接收到结束字符,连接一个 10ms定时器触发发送,然后返回。 //2. 如果由于任何其它原因接收完成,启动一个新的接收。

LDB= SMB8610, 16#20

MOVB 10, SMB3411

ATCH INT_1:INT1, 10

CRETI

NOT

RCV VB100, 0

INT1中断:

//1. 断开定时器中断

//2. 在端口0向用户回送信息

LD SM0.0

DTCH 10

XMT VB100, 0

INT2中断:

//允计另一个接收

LD SM0.0

RCV VB100,0

10 SMB86: 端口0的接收信息状态字节(SMB186: 端口1接收信息状态字节):

Bit 7 6 5 4 3 2 1 0

□n□r□e□0□0□t□c□p

n:

1= 接收信息功能终止:用户发送禁止命令 r:

1= 接收信息功能终止:输入参数错误或无起始或结束条件 e:

1= 收到结束字符

Bit4, Bit3:

始终为0

t:

1= 接收信息功能终止:超时

c:

1= 接收信息功能终止:超出

最大字符数

p:

1= 接收信息功

能终止:奇偶校

验错误

11 SMB34和SMB35分别定义了定时中断0和1的时间间隔,可以在1ms ~ 255ms之间以1ms为增量进行设定。如果相应的定时中断事件被连接到一个中断服务程序,S7‐‐200就会获取该时间间隔值。若要改变该时间间隔,您必须把定时中断事件再分配给同一或另一中断程序,也可以通过中断分离来终止定时中断事件

相关文档
最新文档