为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

发送,接收指令

2013-12-18 10页 pdf 128KB 37阅读

用户头像

is_045369

暂无简介

举报
发送,接收指令 发送 接收指令 发送指令 (XMT) 激活发送数据缓冲区 (TBL) 中的数据 数据缓 冲区的第一个数据指明了要发送的字节数 PORT 指定了用于 发送的端口 XMT指令用于自由端口模式 由通讯端口发送数据 接收指令 (RCV) 激活初始化或结束接收信息的服务 通过指定 端口 (PORT) 接收的信息存储于数据缓冲区 (TBL) 数据缓冲区 的第一个数据指明了接收的字节数 Transmit: 使 ENO = 0 的错误条件是 SM4.3 (运行时间) 0006 (间接寻址) 0009 (在...
发送,接收指令
发送 接收指令 发送指令 (XMT) 激活发送数据缓冲区 (TBL) 中的数据 数据缓 冲区的第一个数据指明了要发送的字节数 PORT 指定了用于 发送的端口 XMT指令用于自由端口模式 由通讯端口发送数据 接收指令 (RCV) 激活初始化或结束接收信息的服务 通过指定 端口 (PORT) 接收的信息存储于数据缓冲区 (TBL) 数据缓冲区 的第一个数据指明了接收的字节数 Transmit: 使 ENO = 0 的错误条件是 SM4.3 (运行时间) 0006 (间接寻址) 0009 (在端口 0 同时 XMT/RCV) 000B (在端口 1 同时 XMT/RCV) Receive: 使 ENO = 0 的错误条件是 SM86.6 和 SM186.6 (RCV 参数错误) SM4.3 (运行时间) 0006 (间接寻址) 0009 (在端口 0 同时 XMT/RCV) 000B (在端口 1 同时 XMT/RCV) 输入/输出 操 作 数 数据类型 TABLE VB, IB, QB, MB, SB, SMB, *VD, *AC, *LD BYTE PORT 常数 (CPU 221 CPU 222 和 CPU 224 为 0 CPU 226 为 0或1) BYTE 对自由端口模式的理解 CPU 的串行通讯口可由用户程序控制 这种操作模式称为自由端口模式 当选择了自由端口模式 梯形图程序可以使用接收中断 发送中断 发送指令 (XMT) 和接收指令 (RCV) 来控制通讯操作 在自由端口模式下 通讯完全由梯形图程序控制 SMB30 (用于端口 0) 和 SMB31 (如果 CPU 有两个端口 则用于端口 1) 用于选择波特率和奇偶校验 当 CPU 处于 STOP 模式 自由端口模式被禁止 重新建立正常的通讯(如可编程设备的访问) 简单的情况下 可以只用发送指令 (XMT) 向打印机或显示器发送信息 其他例子包括同条码阅读 器 重量计和焊机连接 每种情况下 都必须编写程序 以支持自由端口模式下设备同 CPU 通讯 的协议 只有 CPU 处于 RUN 模式时 才能进行自由端口通讯 通过向 SMB30 (端口 0) 或 SMB130 (端口 1) 的协议选择区置 1 可以允许自由端口模式 处于自由端口模式时 不能与可编程设备通讯 注意 可以用反映 CPU 工作方式的模式开关当前位置的特殊存储器位 SM0.7 控制自由端口模式的进入 当 SM0.7为 0 时 模式开关处于 TREM 位置 当 SM0.7 为 1 时 模式开关处于 RUN 位置 只有模 式开关位于 RUN 位置 才允许自由端口模式 为使用可编程设备监视或控制 CPU 操作 可以把模 式开关改变到任何其它位置 自由端口的初始化 SMB30 和 SMB130 分别配置通讯端口 0 和 1 为自由端口通讯选择波特率 奇偶校验和数据位 数 自由端口的控制字节描述如 9-25 所示 表 9-25 特殊存储器位 SMB30 和 SMB130 端口 0 端口 1 描 述 MSB LSB 7 0 p p d b b b m m SMB30 格式 SMB130 格式 自由口模式控制字节 SM30.6 和 SM30.7 SM130.6 和 SM130.7 pp 奇偶选择 00 = 无奇偶校验 01 = 偶校验 10 = 无奇偶校验 11 = 奇校验 SM30.5 SM130.5 d 每个字符的数据位 0 = 每个字符8位 1 = 每个字符7位 SM30.2 到 SM30.4 SM130.2 到 SM130.4 bbb 自由口波特率 000 = 38,400 波特 001 = 19,200 波特 010 = 9,600 波特 011 = 4,800 波特 100 = 2,400 波特 101 = 1,200 波特 110 = 600 波特 111 = 300 波特 SM30.0 和 SM30.1 SM130.0 和 SM130.1 mm 协议选择 00 = 点到点接口协议 (PPI/ 从站模式) 01 = 自由口协议 10 = PPI/ 主站模式 11 = 保留 (缺省设置为 PPI/ 从站模式) 注 每个配置都有一个停止位 用XMT指令发送数据 可以用 XMT 指令方便地发送数据 XMT 指令发送一个或多个字符 最多有 255个字符的缓冲区 如果有一个中断程序连接到发送结束事件上 在发完缓冲区中的最后一个字符时 则会产生一个 中断 (对端口 0 为中断事件 9 对端口 1 为中断事件 26) 可以监视发送完成状态位 SM4.5 或 SM4.6 的变化 而不是用中断进行发送 (如向打印机发送信息) 通过把字符数设置为 0 然后执行 XMT 指令 可以产生一个 BREAK 条件 以当前的波特率在线 上产生一个 16 位的 BREAK 条件 发送任何其他信息时 和发送其他信息一样发送 BREAK 当 BREAK 完成时 产生一个XMT中断 SM4.5 或 SM4.6 反映XMT的当前状态 XMT 缓冲区的格式如图 9–72 所示 其中 对要发送的字节进行计数 (字节区) M E ... 信息字符串 计数 EM S S EA G 图 9-72 XMT 缓冲区格式 用 RCV 指令接收数据 可以用 RCV 指令方便地接收信息 RCV 指令可以接收一个或多个字符 最多有 255 个字符 这些 字符存储在缓冲区中 如果有一个中断程序连接到接收完成事件上 在接收到缓冲区中的最后一个 字符时 则会产生一个中断 (对端口 0 为中断事件 23 对端口 1 为中断事件 24) 可以监视 SMB86 或 SMB186 状态的变化 而不是用中断进行信息接收 当 RCV 邮箱不启动或已 经接收结束时 SMB86 或 SMB186 不为 0 当正在接收时 它们为 0 RCV 指令允许选择信息开始和信息结束条件 信息开始和结束条件的描述如表 9-26 所示 (SM86 至 SM94 用于端口 0 SM186 至 SM194 用于端口1 ) RCV 缓冲区的格式如图 9–73所示 注意 当超界或奇偶校验错时 接收信息功能自动终止 必须为接收信息功能操作定义一个启动条件 (x 或 z) 和一个结束条件 (y t 或最大字符数) 起始 字符字符数 结束 字符EM S S EA G 图 9- 73 RCV 缓冲区格式 表 9-26 特殊存储器字节SMB86到 SMB94 SMB186到SMB194 端口 0 端口 1 描 述 MSB LSB 7 0 n r e 0 0 t c p 接收信息状态字节 SMB86 SMB186 n:1=用户通过禁止命令结束接收信息 r: 1=接收信息结束 输入参数错误或缺少起始和结束条件 e:1=收到结束字符 t: 1=接收信息结束 超时 c:1=接收信息结束 字符数超长 p:1=接收信息结束 奇偶校验错误 表 9-26 特殊存储器字节 SMB86到 SMB94 SMB186到SMB194 (续) 端口 0 端口 1 描 述 MSB LSB 7 0 en sc ec il c/m tmr bk 0 接收信息状态字节 SMB87 SMB187 en: 0=禁止接收信息功能 1=允许接收信息功能 每次执行 RCV 指令时检查允许/禁止接收信息位 sc: 0=忽略 SMB88 或 SMB188 1=使用 SMB88 或 SMB188 的值检测起始信息 ec: 0=忽略 SMB89 或 SMB189 1=使用 SMB89 或 SMB189 的值检测结束信息 il: 0=忽略 SMB90 或 SMB190 1=使用 SMB90 值检测空闲状态 c/m: 0=定时器是内部字符定时器 1=定时器是信息定时器 tmr: 0=忽略 SMW92 或 SMW192 1=当执行 SMW92 或 SMW192 时终止接收 bk: 0=忽略中断条件 1=使用中断条件来检测起始信息 信息的中断控制字节位用来定义识别信息的 信息的起始和结 束均需定义 起始信息 =il*sc+bk*sc 结束信息=ec+tmr+最大字符数 起始信息编程 1.空闲检测 il=1,sc=0,bk=0,SMW90>0 2.起始字符检测: il=0,sc=1,bk=0,SMW90 is a don’t care 3.中断检测: il=0,sc=1,bk=1,SMW90 is a don’t care 4.对一个信息的响应: il=1,sc=0,bk=0,SMW90=0 (信息定时器用来终止没有响应的接收) 5.中断一个起始字符: il=0,sc=1,bk=1,SMW90 is a don’t care 6.空闲和一个起始字符: il=1,sc=1,bk=0,SMW90>0 7.空闲和起始字符(非法): il=1,sc=1,bk=0,SMW90=0 注意 通过超时和奇偶校验错误(如果允许) 可以自动结束接收过 程 SMB88 SMB188 信息字符的开始 SMB89 SMB189 信息字符的结束 端口 0 端口 1 描 述 SMB90 SMB91 SMB190 SMB191 空闲线时间段按毫秒设定 空闲线时间溢出后接收的第一个字符是 新的信息的开始字符 SM90 (或SM190) 是最高有效字节 SM91 (或 SM191) 是最低有效字节 SMB92 SMB93 SMB192 SMB193 中间字符/信息定时器溢出值按毫秒设定 如果超过这个时间段 则终止接收信息 SM92 (或SM192) 是最高有效字节 SM93 (或 SM193) 是最低有效字节 SMB94 SMB194 要接收的最大字符数 (1 到255 字节) 注 这个范围必须设置到所希望的最大缓冲区大小 即使信息的字 符数终止用不到 使用字符中断控制接收数据 由协议支持所允许的完全柔性 可以使用字符中断控制来接收数据 每接收一个字符会产生一个中 断 在执行连接到接收字符中断事件上的中断程序前 接收到的字符存储在 SMB2 中 奇偶状态 (如果允许) 存储在 SM3.0 中 l SMB2 是自由端口接收数据的缓冲区 自由端口模式下接收到的每个字符被存储在这个单 元 以方便用户程序访问 . l SMB3 用于自由端口模式 并包含一个在检测到接收字符奇偶校验错时接通的奇偶校验错误 位 该字节的所有其他位被保留 用该位丢弃本信息或产生对本信息的否定确认 注意 端口 0 和端口 1 共用 SMB2 和 SMB3 当在端口 0 接收字符时 端口 0 的接收启动和该事件 (中断 事件 8) 相连接的中断程序 SMB2 中包含端口 0 接收的字符 SMB3 中包含字符的校验状态 当在 端口 1 接收字符时 端口 1的接收启动和该事件 (中断事件 25) 相连接的中断程序 SMB2 中包含 端口 1接收的字符 SMB3 中包含字符的校验状态 接收和发送举例 本程序展示了接收和发送的使用 它将接收一串字符 直到接收到回车符 信息又发回到发送方 LAD STL SMB30 SM0.1 MOV_B EN IN16#9 OUT Network 1 LD SM0.1 MOVB 16#9, SMB30 MOVB 16#B0, SMB87 MOVB 16#0A, SMB89 MOVW +5, SMW90 MOVB 100, SMB94 ATCH 0, 23 ATCH 1, 9 ENI RCV VB100, 0 首次扫描时 - 初始化自由口 - 选择 9600波特率 - 选择 8位数据 - 选择无校验 RCV TBLVB100 EN SMB87 MOV_B EN IN16#B0 OUT Network 1 PORT0 初始化RCV信息控制信息 - RCV 允许 - 检测信息结束字符 - 检测空闲线信息条件 SMB89 MOV_B EN IN16#A OUT SMW90 MOV_W EN IN+5 OUT SMB94 MOV_B EN IN100 OUT ATCH INT0 EN EVNT23 ATCH INT1 EN EVNT9 设定信息结束信息为 16 进值 0A 回车 设置空闲线超时为 5ms 设定最大字符数为 100 接收完成事件连接到中断 发送完成事件连接到中断 ENI 允许用户中断 端口 0 的接收信箱缓冲区 指向VB100 ENO ENO ENO ENO ENO ENO ENO ENO MAIN (OB1) 图 9- 74 传送指令举例 接收完成中断 如果接收完成 然后启 动一个新的接收 定时器中断 nterrupt. Network 1 LDB= SMB86, 16#20 MOVB 10, SMB34 ATCH 2, 10 CRETI NOT RCV VB100, 0 Network 1 LD SM0.0 DTCH 10 XMT VB100, 0 MOV_B IN SMB86 10 EN RETI Network 1 TBL PORT VB100 0 ENNOT 断开定时器中断 DTCH EVNT SM0.0 10 EN XMT TBL PORT VB100 0 EN Network 1 == B16#20 如果接收状态显示接收到 结束字符 连接一个 10 ms 定时器触发发送 然 后返回 在端口 0向用户回送信息 ATCH INT EVNT 1 10 EN OUT SMB34 INTERRUPT 0 INTERRUPT 1 ENO ENO ENO RCV ENO ENO Network 10 LD SM0.0 RCV VB100, 0发送结束中断 允许另一个接收 RCV TBL PORT VB100 0 EN SM0.0 Network 10 INTERRUPT 2 ENO 图 9- 74 发送指令举例 (续) B 定 时 器 中 断 断开定时器中断 16#20 IN SM0.1 16#9 MOV_B EN IN OUT ENO RCV TBL PORT VB100 0 EN Network 1 FBD MOV_B EN OUT MOV_W EN IN+5 OUT ENO ENO SMB30 SMB8716#B0 SMB8916#A MOV_B EN IN OUT ENO MOV_B EN IN OUT ENO SMW90 SMB94100 ATCH INT EVNT 0 23 EN ENO ATCH INT EVNT 2 9 EN ENO ENO ENI INTERRUPT 0 Network 1 ==B 16#20 SMB86 MOV_B EN IN OUT ENO 10 SMB34 1 10 ATCH INT EVNT EN ENO RETI RCV TBL PORT VB100 0 EN ENO INTERRUPT 1 DTCH EVNT10 EN XMT TBL PORT VB100 0 ENENO ENOSM0.0 INTERRUPT 2 RCV TBL PORT VB100 0 EN ENOSM0.0 图 9- 74 发送指令举例 (续) 获取口地址 获取口地址 (GPA) 指令读取 PORT 指定的 CPU 口的站地址 将 数值放入 ADDR 指定的地址中 GPA: 使 ENO = 0 的错误条件 : SM4.3 (运行时间), 0006 (间接寻址) 输入/输出 操 作 数 数据类型 ADDR VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD BYTE PORT 常数 BYTE 设定口地址 设定口地址 (SPA) 指令将口的站地址 (PORT) 设置为ADDR 指 定的数值 SPA: 使 ENO = 0 的错误条件: SM4.3 (运行时间), 0006 (间接寻址) 新地址不能永久保存 上电后 口地址将返回到上次的地址值 (用系统块下载的地址) 输入/输出 操 作 数 数据类型 ADDR VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *AC, *LD BYTE PORT 常数 BYTE
/
本文档为【发送,接收指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索