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

发布时间:2021-06-06

总结了S7-200自由口通讯的基本用法,整理成文备查

1

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

主程序: 

LD     SM0.1   

2

MOVB   16#05, SMB30  

3

MOVB   16#F0, SMB87 

   

// PLC上电第一个扫描周期 

//1. 初始化自由口为波特率 19200bps,8数据位,无校验 //2. 初始化RCV信息控制字节, RCV使能 

// 检测信息开始字符和结束字符,检测空闲线信息条件 // 设定信息开始字符为 16#7E ('~'字符) //3. 设定信息结束字符为 16#0A (换行字符) //4. 设置空闲线超时为5ms //5. 设置最大字符数为255 

//6. 连接中断0到接收结束事件 //7. 连接中断2到发送结束事件 //8. 允许用户中断 

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

MOVB   16#7E, SMB884  MOVB   16#0A, SMB895  MOVW   +5, SMW906   

7

MOVB   255, SMB94   

8

ATCH   INT_0:INT0, 23  

9

ATCH   INT_2:INT2, 9   ENI       RCV    VB100, 0    可以只用发送指令(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= 奇校验  

3

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/从站模式) 

 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或SMW1901=使用SMW90或SMW190的值检测空闲状 

B3: 

0= 定时器是内部字符定时器 1=定时器是信息定时器 B2: 

0=忽略SMW92或SMW192 1=当SMW92或SMW192 

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

B1: 

0=忽略中断条件 1=用中断条件作为信息检测的开始 B0: 

始终为零 

 

4

 SMB88: 端口0的开始字符(SMB188: 端口1的开始字符)  SMB89: 端口0的结束字符(SMB189: 端口1的结束字符) 

5

  

 空闲线时间段(按毫秒设定)。空闲线时间溢出后接收的第一个字符是新的信息的开始字符。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) 

6

精彩图片

热门精选

大家正在看