收藏 分享(赏)

基于s7200的串行口通讯协议的实现.doc

上传人:ysd1539 文档编号:6976569 上传时间:2019-04-29 格式:DOC 页数:4 大小:103KB
下载 相关 举报
基于s7200的串行口通讯协议的实现.doc_第1页
第1页 / 共4页
基于s7200的串行口通讯协议的实现.doc_第2页
第2页 / 共4页
基于s7200的串行口通讯协议的实现.doc_第3页
第3页 / 共4页
基于s7200的串行口通讯协议的实现.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、基于 s7200 的串行口通讯协议的实现天津工业大学 原晋辉 摘要:S7200PLC 是广泛用于现场的小型 PLC,它具有的自由口通讯协议编程功能是用户自己编写通讯协议成为可能,本例提供了使用 S7200 编写自由口通讯程序的方法关键词:串行通讯 S7200The Protocol of Serial Communication base on S7200 PLCTianjin polytechnic university yuanjinhuiAbstract:SIMATIC S7200 PLC is the mini program logic controller which is use

2、d in many place.because of the characteristic free port protocol of S7200 PLC,it is possible for user to use their owne protocol in program, The method of how to use free port protocol in program is presentedKey word Serial Communication S7200 PLCS7200 广泛使用于工业现场的小型控制器,因为其具有的结构紧凑、 扩展性能好、指令丰富的优点。在机械环保

3、等众多行业中都有他在发挥着作用。特 别是它具有的自由口通 讯的功能,使用 户自己定义上下位机之间的通讯协议成为可能。在本例中,采用自由口通讯方式,使用 发送指令(XMT)、接受指令( RCV)通过端口 0 来实现对数据的发送和接收1( 1 通讯协议111 数据格式:上下位机之间的通讯协议分为上位机的发送数据和下发机的反馈数据:起始字(1 字节)数据长度(2 字节)目标地址(2 字节)数据(3 字节)校验和(1 字节)结束字(1 字节)表 1(a)上位机下传数据桢结构起始字(1 字节)数据(8 字节)校验和(1 字节)结束字(1 字节)表 1(b)下位机反馈数据桢结构说明:(1( 起始字:占一个

4、字节,采用 ASCII 字符“A”。(2( 数据长度:占二个字节,表示的是要写入数据的十六 进制 ASCII 码所占用的字节数。(3( 目标地址:占二个字节,表示的是要写入数据的十六 进制 ASCII 码所存储的地址。(4( 数据:占三个字节,采取十六 进制 ASCII 码形式下传:(5( 校验和:占一个字节,为 CRC 校验码的十六进制 ASCII 码形式。(6( 结束字:占一个字节,采用 ASCII 字符“X”。上下位机的数据并未采用原本的形式传输,而是采用了 ASCII 码的形式传输,主要是为了避免要传输的数据与指令中的起始字符和结束字符字发生混淆。从而避免数据直接以其原本的形式传输时因

5、数据与控制字节一致而导致的误操作.112 PLC 地址的分配:在 PLC 中,为了方便管理数据,所有接收和 发送的字符都存储在 V 存储器中,校 验标志位则是用了 M存储器中的位 M0.0:1121 接收缓存区:VB100 接收缓存区的长度VB101 起始字“A”VB102VB103数据的目标地址:VB104VB105数据的长度:VB106VB107数据VB108 数据VB109 CRC 校验码VB110 结束字“X”表 2 接收缓存区1122 发送缓存区:VB300 接收缓存区的长度VB301 起始字“A”VB302VB303VB305VB306数据:VB110 结束字“X”表 3 发送缓存

6、区1123 译码区:表 4 译码区1124 功能区: 表 5 功能区1.2 自由口通讯的实现VW700 译码后数据存放的目标地址VW702 译码后数据的长度VW704 译码后数据+校验码VW800 校验码产生式 G(X)VW810 校验后的余数 R(X)VW820 G(X)在校验时需补足的位数121 自由口通 讯 的初始化:自由口编程的初始化包括设置自由口模式寄存器 SMB30(端口 0)或 SMB130(端口 1),接收信息控制字SMB87(端口 0)或 SMB187(端口 1),接收自负的最大数 SMB30(端口 0)或 SMB130(端口 1)。在本例中选择无奇偶校验,8 位字符,192

7、00 波特率,自由口协议,接收缓存区大小设置为 1025,故 设置SMB130=16#05H;SMB187=16#B0H;SMB194=1025H;1.2.2 字符的接收及发送:字符的接收利用接受中断来完成,对于端口 1 接收中断的事件号为 25,利用 ATCH 指令即可把该事件同相应的中断连接起来,然后在中断中使用 RCV 指令来接受下传的数据, 这些数据被存储在指定的缓存区中。字符的发送通过相同的原理利用发送中断来实现,端口 1 发送中断的事件号为 26,在 发送完成中断中利用XMT 指令定时的反馈信息发送到端口 1 中去。123 字符的 译码 和存储:当端口 1 接受字符完毕后,程序检测

8、接收缓存区中的开始字符,若是起始字“A” ,则对随后的数据地址,数据长度,数据及校 验码利用 ATH 指令进行译码,将其从 ASCII 码的形式翻译为相应的十六进制数,分别存入指定的译码区,然后根据校 验 的结果对数据进行处理,若校 验正确,则把译码完毕的数据从译码区传送到数据地址指定的数据区,给出校 验正确的反馈信息, 发送到端口 1,若校验错误则把校验错误的反馈信息发送到端口 1,对 数据则不做任何 处理。M0.=1 收 到 起 始 字 符对 收 到 的 数 据 长 度 译 码 , 送 到 指 定 存 储 区 对 收 到 的 数 据 地 址 译 码 , 送 到 指 定 存 储 区 对 收

9、到 的 数 据 ( 包 括 校 验 码 ) 译 码 ,送 到 指 定 存 储 区 存 储 区 调 检 验 子 程 序 将 译 完 码 的 数 据 存 到 由地 址 指 定 的 存 储 区 校 验 正 确 的 信 息 送 到 发送 缓 冲 区 校 验 错 误 的 信 息 送 到 发送 缓 冲 区 返 回 图 1 字符处理子程序124 字符的校验:数据的校验部分是上下位机通讯的重要组成部分,实际中常用的校验方法有奇偶校验法,循环冗余(CRC)校 验法,海明码校验法,常用的是循 环冗余(CRC) 校验法,在本例中采用循 环冗余(CRC)校验法,循环冗余校验的主要原理是用待发送的二进制数据 t(x)除

10、以生成多项式 g(x),将最后的余数作为 CRC 校验码,发送时把数据和校验码一起发送,接收方利用以相同方法生成的多项式去除所接收到的数据和校验码, 如果余数位零,则 表示传输过 程没有错误;如果余数不 为零, 则在传输过程中肯定存在 错误.下面为字符 CRC 的实现过程:(1( 计算产生式 g(x)=24+2+1。(2( t(x)为数据和校 验和二进制多项式。(3( g(x)与 t(x)的高位进行异或,产生新的 r(x)。(4( 根据 r(x)的结果进行判断,r(x)g(x)则结束校验,给出结果,否则重复上述过程。R(X)G(X) N Y R(X)=0 Y 计 算 G(X)=4+X1 P(X

11、)=G(X)*(16-5J) R(X)=P(X) OR T(X) 调 计 算 J的 程 序 置 位 M0. 复 位 M0. 返 回 Y M(X)=0 N Q(X)=16#80H,J=1 R(X) AND Q(X)=M(X) Q(X)左 移 一 位 , J=-1 给 出 J 退 出 图 2 a 校验 程序的流程图 图 2b 计算的 J 子程序125 结 束语利用自由口通讯的方法进行上下位机之间的数据通讯,极大地提高了上下位机之间数据传输灵活性,那些不了解 MPI,PPI 和 PROFIBUS 通讯协议的人可以按照自己定义的方式来编写进行上下位机通讯程序。实践证明这也是一种比较可靠和高效率的通讯方法。参考文献:(1)西门子公司:SIMATIC s7200 可编程序控制器系统手册 2000 年 6 月(2)自由口模式下 PLC 与计算机的通信 HTTP:/WWW.AD.SIEMENS.COM(3) 刘东:循环冗余校验 CRC 的算法分析和程序 实现 63 号天津工业大学 195 信箱邮编:300160

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报