西门子S7-200授权总经销商 6ES7288-3AE04-0AA0 S7-200 SMART 模拟输入
6ES7288-3AE04-0AA0 SIMATIC S7-200 SMART, 模拟输入 SM AI04,4 模拟输入, 0...10V,0...5V,+/-5V,+/-2.5V, 或者 0/4-20mA 11 Bit+符号位(12 Bit ADC) |
将PPI通讯转变为自由端口模式 SMB30和SMB130分别配置通讯口0和通讯口1,并且为自由端口操作提供波特率、校验和数据位数 的选择。自由端口的控制字节如图6--8所示。每一个配置都产生一个停止位。 7 MSBLSB ppdbbbmm 0 pp:奇偶校验选择 00=无奇偶校验 01=偶校验 10=无奇偶校验 11=奇校验 d:每个字符的数据位 0=每个字符8位 1=每个字符7位 bbb:自由端口波特率 000=38,=19,=9,=4,=2,=1,=115.2k1 111=57.6k1 mm:协议选择 00=PPI/从站模式 01=自由端口协议 10=PPI/主站模式 11=保留(缺省时为PPI/从站模式) SMB30=端口0 SMB130=端口1 1需要S7-200CPU 版本1.2或更高 图6--8用于自由端口模式的SM控制字节(SMB30或SMB130) 发送数据 发送指令使您能够发送一个字节或多个字节的缓冲区,*多为255个。 图6--9给出了发送缓冲区的格式。 如果有一个中断程序连接到发送结束事件 上,在发送完缓冲区中的*后一个字符 时,则会产生一个中断(对端口0为中断事 件9,对端口1为中断事件26)。 消息字符 EMSSEAG计数 发送字节个数(字节区) 图6--9发送缓冲区的格式 您可以不使用中断来执行发送指令(例如:向打印机发送消息)。通过监视SM4.5或者SM4.6信号,判 断发送是否完成。 把字符数设置为0并执行XMT指令,可以产生一个BREAK状态。这样产生的BREAK状态,在线上会 持续以当前波特率传输16位数据所需要的时间。发送BREAK的操作和发送其他任何消息的操作是一 样的。当BREAK完成时,产生一个发送中断并且SM4.5或者SM4.6反应发送操作的当前状态。 接收数据 接收指令使您能够接收一个字节或多个字节的缓冲区,*多为255个。 图6--10给出了接收缓冲区的格式。 如果有一个中断程序连接到接收消息完成 事件上,在接收完缓冲区中的*后一个字 符时,S7--200会产生一个中断(对端口0为 中断事件23,对端口1为中断事件24。) 消息字符 EMSSEAG计数 接收的字节个数(字节区) 起始 字符 结束 字符 图6--10接收缓冲区的格式 您可以不使用中断,通过监视SMB86(端口0)或者SMB186(端口1)来接收消息。当接收指令未被激 活或者已经被中止时,这一字节不为0;当接收正在进行时,这一字节为0。 S7-200可编程序控制器系统手册 88 如表6--13中所示,接收指令允许您选择消息的启始和结束条件。使用SMB86至SMB94对端口0进行 设置,SMB186至SMB194对端口1进行设置。 提示 当超限或有校验错误时,接收消息功能会自动终止。必须为接收消息功能操作定义一个启始条件和 一个结束条件(*大字符数)。 表6--13接收缓冲区字节(SMB86到SMB94和SMB186到SMB194) 端口0端口1描述 SMB86SMB186MSBLSB nre0tcp 0 接收消息 状态字节 n:1=接收消息功能被终止:用户发送禁止命令。 r:1=接收消息功能被终止:输入参数错误或丢失启动或结束条件。 e:1=接收到结束字符。 t:1=接收消息功能被终止:定时器时间已用完。 c:1=接收消息功能被终止:实现*大字符计数。 p1=接收消息功能被终止:奇偶校验错误。 7 0 SMB87SMB187MSBLSB enscecc/mtmrbk0 7 il 接收消息 控制字节0 en:0=接收消息功能被禁止。 1=允许接收消息功能。 每次执行RCV指令时检查允许/禁止接收消息位。 sc:0=忽略SMB88或SMB188。 1=使用SMB88或SMB188的值检测起始消息。 ec:0=忽略SMB89或SMB189。 1=使用SMB89或SMB189的值检测结束消息。 il:0=忽略SMW90或SMW190。 1=使用SMW90或SMW190的值检测空闲状态。 c/m:0=定时器是字符间定时器。 1=定时器是消息定时器。 tmr:0=忽略SMW92或SMW192。 1=当SMW92或SMW192 中的定时时间超出时终止接收。 bk:0=忽略断开条件。 1=用中断条件作为消息检测的开始。 SMB88SMB188消息字符的开始 SMB89SMB189消息字符的结束 SMW90SMW190空闲线时间段按毫秒设定。空闲线时间用完后接收的第一个字符是新消息的 开始。 SMW92SMW192中间字符/消息定时器溢出值按毫秒设定。如果超过这个时间段,则终止接收 消息。 SMB94SMB194要接收的*大字符数(1到255字节)。此范围必须设置为期望的*大缓冲区大小,即 使不使用字符计数消息终端。 第6章 S7-200指令集 接收指令的启动和结束条件 接收指令使用接收消息控制字节(SMB87或SMB187)中的位来定义消息起始和结束条件。 提示 当接收指令执行时,在接收口上有来自其他器件的信号,接收消息功能有可能从一个字符的中间开 始接收字符,从而导致校验错误和接收消息功能的中止。如果校验没有被使能,接收到的消息有可 能包含错误字符。当起始条件被指定为一个特定的起始字符或任意字符时,这种情况有可能发生, 正象下面第2.条和第6.条中所描述的那样。 接收指令支持几种消息起始条件。指定包含一个停顿或者一个空闲线检测的起始条件,通过在将字 符放到消息缓冲区之前,用一个字符的起始来强制接收消息功能和消息的起始相同步,来避免以上 问题。 接收指令支持几种起始条件: 1. 空闲线检测:空闲线条件定义为传输线路上的安静或空闲时间。在SMW90或者SMW190中指 定其毫秒数。当接收指令在程序中执行时,接收消息功能对空闲线条件进行检测。如果在空闲 线时间到之前接收到任何字符,接收消息功能会忽略那些字符并且按照SMW90或者SMW190 中给定的时间值重新启动空闲线定时器。参见图6--11。在空闲线时间到之后,接收消息功能将 所有接收到的字符存入消息缓冲区。 空闲线时间应该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止 位)的时间。空闲线时间的典型值为在指定波特率下传输三个字符的时间。 对于二进制协议、没有特定起始字符的协议或者指定了消息之间*小时间间隔的协议,您可以 使用空闲线检测作为起始条件。 设置:il = 1,sc=0,bk=0,SMW90/SMW190 = 空闲线超时(毫秒) 字符 字符 重新启动空闲时间 执行了接收指令:启动空闲时间 检测到空闲时间: 启动接收消息功能 进入消息缓冲区的第一个字符 图6--11 用空闲时间检测来启动接收指令 2. 启动字符检测:启动字符是用作消息第一个字符的任意字符。当接收到SMB88或者SMB188中 指定的起始字符后,一条消息开始。接收消息功能将起始字符作为消息的第一个字符存入接收 缓冲区。接收消息功能忽略所有在起始字符之前接收到的字符。起始字符和起始字符之后接收 到的所有字符一起存入消息缓冲区。 通常,对于所有消息都使用同一字符作为起始的ASCII码协议,您可以使用起使字符检测。 设置: il= 0,sc=1,bk=0,SMW90/SMW190 = 无关,SMB88/SMB188 = 起 始字符 89 S7-200可编程序控制器系统手册 3. 空闲线和起始字符:接收功能可启动一个组合了空闲线和起始字符的消息。当接收指令执行 时,接收消息功能检测空闲线条件。在空闲线条件满足后,接收消息功能搜寻指定的起始字 符。如果接收到的字符不是起始字符,接收消息功能重新检测空闲线条件。所有在空闲线条件 满足和接收到起始字符之前接收到的字符被忽略掉。起始字符与字符串一起存入消息缓冲区。 空闲线时间应该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止 位)的时间。空闲线时间的典型值为在指定波特率下传输三个字符的时间。 通常,对于指定消息之间*小时间间隔并且消息的首字符是特定设备的站号或其他消息的协 议,您可以使用这种类型的起始条件。这种方式尤其适用于在通讯连接上有多个设备的情况。 在这种情况下,只有当接收到的消息的起始字符为特定的站号或者设备时,接收指令才会触发 一个中断。 设置: il= 1,sc=1,bk=0,SMW90/SMW190 > 0, SMB88/SMB188 = 起始字符 4. 断开检测:当接收到的数据保持为零值的时间大于完整的字符传输时间时,指示断开。一个完 整字符传输时间定义为传输起始位、数据位、校验位和停止位的时间总和。如果接收指令被配 置为用接收一个断点作为消息的起始,则任何在断点之后接收到的字符都会存入消息缓冲区。 任何在断点之前接收到的字符都被忽略。 通常,只有当通讯协议需要时,才使用断点检测作为起始条件。 设置: il= 0,sc=0,bk=1,SMW90/SMW190 = 无关, SMB88/SMB188 = 无关 5. 断开和起始字符:接收指令可配置为在接收一个断开条件后开始接收字符,然后按顺序接收特 定的起始字符。在断点条件满足之后,接收消息功能寻找特定的起始字符。如果收到了除起始 字符以外的任意字符,接收消息功能重新启动寻找新的断点。所有在断点条件满足和接收到起 始字符之前接收到的字符都会被忽略。起始字符与字符串一起存入消息缓冲区。 设置: il= 0,sc=1,bk=1,SMW90/SMW190 = 无关, SMB88/SMB188 = 起始字符 6. 任意字符:接收指令可配置为立即启动接收任意和所有字符,并将它们放入消息缓冲区。这是 空闲线检测的一种特殊情况。在这种情况下,空闲线时间(SMW90或者SMW190)被设置为0。 这使得接收指令一经执行,就立即开始接收字符。 设置: il= 1,sc=0,bk=0,SMW90/SMW190 = 0,SMB88/SMB188 = 无关 用任意字符开始一条消息允许使用消息定时器,来监控消息接收是否超时。这对于自由端口协 议的主站是非常有用的,并且当在指定时间内,没有来自从站的任何响应的情况,也需要采取 超时处理。由于空闲线时间被设置为0,当接收指令执行时,消息定时器启动。如果没有其他 终止条件满足,消息定时器超时会结束接收消息功能。 设置: il= 1,sc=0,bk=0,SMW90/SMW190 = 0,SMB88/SMB188 = 无关 c/m = 1,tmr = 1,SMW92 = 消息超时(毫秒