西门子CPU中央处理器ST60代理商 西门子CPU中央处理器ST60代理商
西门子CPUST60代理商
使用字符中断控制接收数据
为了完全适应对各种协议的支持,您还可以使用字符中断控制来接收数据。接收每个字符
时都会产生中断。执行连接到接收字符事件的中断例程之前,接收到的字符存入 SMB2,
奇偶校验状态(若已启用)存入 SM3.0。SMB2 是自由端口接收字符缓冲区。自由端口
模式下接收到的每一个字符都会存入这一位置,便于用户程序访问。SMB3 用于自由端口
模式,包含一个奇偶校验错误位,如果在接收到的字符中检测到奇偶校验错误、组帧错
误、超限错误或断开错误,该位将置位。保留该字节的所有其它位。可使用奇偶校验位丢
弃消息或向该消息发送否定确认。
以较高波特率(38.4K 到 115.2K)使用字符中断时,中断之间的时间间隔会非常短。例
如,波特率为 38.4K 时的字符中断为 260 微秒,57.6K 时为 173 微秒,115.2K 时为86
微秒。确保中断例程足够短,以避免字符丢失,否则请使用接收指令。
说明
SMB2 和 SMB3 可供端口 0 和端口 1 共用。在端口 0 上接收字符导致执行连接到该事件
(中断事件 8)的中断例程时,SMB2 包含在端口 0 上接收的字符,而 SMB3 则包含该
字符的奇偶校验状态。在端口 1 上接收字符导致执行连接到该事件(中断事件 25)的中
断例程时,SMB2 包含在端口 1 上接收的字符,而 SMB3 则包含该字符的奇偶校验状
态。
CPUST60
比较字符串
比较字符串指令可比较两个 ASCII 字符串。
对于 LAD 和 FBD: 比较结果为 TRUE 时,比较指令将接通触点 (LAD) 或输出 (FBD)。
对于 STL: 比较结果为 TRUE 时,比较指令可装载 1、将 1 与逻辑栈顶中的值进行“与”
运算或者“或”运算。
可以在两个变量或一个常数和一个变量之间进行比较。 如果比较中使用了常数,则它必
须为顶部参数(LAD 触点/ FBD 功能框)或参数 (STL)。
在程序编辑器中,常数字符串参数赋值必须以双引号字符开始和结束。 常数字符串条目
的长度是 126 个字符(字节)。
变量字符串由初始长度字节的字节地址引用,字符字节存储在下一个字节地址处。
变量字符串的长度为 254 个字符(字节),并且可在数据块编辑器进行初始化(前
后带双引号字符)。
说明
以下条件会导致非致命错误,能流将设置为 OFF(ENO 位 = 0),并采用值 0 作为比较
结果:
? 遇到非法间接地址(任意比较指令)
? 遇到长度大于 254 个字符的变量字符串(比较字符串指令)
? 变量字符串的起始地址和长度使其不适合所的存储区(比较字符串指令)
为了避免这些情况的发生,应确保正确初始化指针以及用于保留 ASCII 字符串的存
储单元,再执行使用这些值的比较指令。 确保为 ASCII 字符串预留的缓冲区能够完
全放入的存储区。
无论能流的状态如何,都会执行比较指令。