:1800弄(电子商务园)5005公司主营:西门子数控系统,V20变频器S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子精智面板6AV6645-0EB01-0AX1现货
敬请放心购买!量大价优,欢迎选购!
1. 字符计数:接收指令必须已知要接收的字符数(SMB94或SMB194)。当达到或者超出 这个值,接收消息功能结束。即使不会被用作结束条件,接收指令要求用户一个字符 个数。这是因为接收指令需要知道接收消息的长度,这样才能保证消息缓冲区之后的用户 数据不会被覆盖。
对于消息的长度已知并且恒定的协议,可以使用字符计数来结束消息。字符计数总是 与结束字符检测、字符间定时器或者消息定时器结合在一起使用。
2. 奇偶校验错误:当硬件发出指示在接收的字符上有奇偶校验错误时,接收指令自动终止。 只有在SMB30或者SMB130中使能了校验位,才有可能出现校验错误。没有办法禁止此功能。
3. 用户终止:用户程序可以通过执行另一个在SMB87或SMB187中的启用位(EN)设置为零的接收
指令来终止接收消息功能。这样可以立即终止接收消息功能。
使用字符中断控制接收数据
为了*适应对各种协议的支持,您也可以使用字符中断控制的接收数据。接收每个字符时都会 产生中断。在执行与接收字符事件相连的中断程序之前,接收到的字符存入SMB2中,校验状态(如果 使能的话)存入SM3.0。SMB2是端口接收字符缓冲区。在端口下,每一个接收到的字符 都会存放到这一位置,便于用户程序访问。SMB3用于端口。它包含一个校验错误标志位。 当接收字符的同时检测到校验错误时,该位被置位。该字节的其他位被保留。利用校验位去丢弃消息 或向该消息发送否定应答。
在较高的波特率下(38.4K到115.2K)使用字符中断时,中断之间的时间间隔会非常短。例如:在38.4 时为260微秒;在57.6K时为173微秒;在115.2K时为86微秒。确保您的中断程序足够短,不会丢失字 符或者使用接收指令。
M A I N | Network1 //本程序接收一个字符串, //直到接收到换行字符。 //接收完成后, //消息会发送回到发送方。 LD SM0.1 // 第 一 次 扫 描 时 : MOVB 16#09, SMB30 //1. 初始化端口: // - 选择9600波特。 // - 选择8位数据位 // - 选择无校验 MOVB 16#B0, SMB87 //2. 初始化RCV消息控制字节: // - RCV已启用。 // - 检测消息结束字符 // - 检测空闲线消息条件 MOVB 16#0A, SMB89 //3. 将消息结束字符设为 // 十六进制O (进一行) 。 MOVW +5, SMW90 //4. 将空闲线超时设为 // 5 ms。 MOVB 100, SMB94 //5. 将字符数设为 // 100。 ATCH INT_0, 23 //6. 将中断0 // 连接到接收完成事件。 ATCH INT_2, 9 //7. 将中断2 // 连接到发送完成事件。 ENI //8. 启用用户中断。 RCV VB100, 0 //9. 启用带有VB100处的缓冲区 // 的接收方框。 |
实例:发送和接收指令 | ||
I N T 0 | Network 1 // 接收完成中断程序: //1. 如果接收状态显示接收结束字符 // 则连接一个 // 10 ms定时器,触发发送并返回。 //2. 如果接收因其他原因完成, // 则启动新的接收。 LDB= SMB86,16#20 MOVB 10,SMB34 ATCH INT_1,10 CRETI NOT RCV VB100,0 | |
I N T 1 | Network 1 //10-ms 定时器中断: //1. 断开定时器中断。 //2. 将消息发送返回端口上的用户。 LD SM0.0 DTCH 10 XMT VB100,0 | |
I N T 2 | Network 1 //发送完成中断: //启用另一个接收。 LD SM0.0 RCV VB100,0 |
获取端口地址和设置端口地址指令
获取端口地址指令(GPA)读取PORT的CPU口的站地址, 并将数值放入ADDR的地址中。
设置端口地址指令(SPA)将口的站地址(PORT)设置为ADDR指 定的数值。新地址不能保存。重新上电后,口地址将返回 到原来的地址值(用块下载的地址)。
设置ENO=0的错误条件:
■ 0006 (间接寻址)
■ 0004 (试图在中断程序中执行设置端口地址指令)
表6--14 获取端口地址和设置端口地址指令的有效操作数
输入/输出 | 数据类型 | 操作数 |
ADDR | BYTE | IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数 (常数值仅用于设置端口地址指令。) |
PORT | BYTE | 常数 对于CPU 221、CPU 222、CPU 224: 0 对于CPU 224XP、CPU 226: 0或1 |
比较指令
数值比较
比较指令用于比较两个数值:
IN1 = IN2 IN1 >= IN2 IN1 <= IN2 IN1 > IN2 IN1 < IN2 IN1 <> IN2
字节比较操作是无符号的。整数比较操作是有符号的。双字比较操作是有符号的。实数比较操作是有符号的。
对于LAD和FBD:当比较结果为真时,比较指令接通触点
(LAD)或输出(FBD)。
对于STL:当比较结果为真时,比较指令将1载入栈顶,再将
1与栈顶值作“与"或者“或"运算(STL)。
当您使用IEC比较指令时,您可以使用各种数据类型作为输 入。但是,两个输入的数据类型必须*。
表6--15 比较指令的有效操作数
输入/输出 | 类型 | 操作数 |
IN1、IN2 | BYTE | IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数 |
INT | IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、*VD、 *LD、*AC、常数 | |
DINT | ID、QD、VD、MD、SMD、SD、LD、AC、HC、*VD、*LD、*AC、常数 | |
实型 | ID、QD、VD、MD、SMD、SD、LD、AC、*VD、*LD、*AC、常数 | |
OUT | BOOL | I、Q、V、M、SM、S、T、C、L、功率流 |
下一篇:西门子精智面板6AV6645-0CB01-0AX0代理商