自由口通信模式下计算机读写 PLC 存储区的程序设计.pdf

上传人:asd****56 文档编号:69700810 上传时间:2023-01-07 格式:PDF 页数:4 大小:120.19KB
返回 下载 相关 举报
自由口通信模式下计算机读写 PLC 存储区的程序设计.pdf_第1页
第1页 / 共4页
自由口通信模式下计算机读写 PLC 存储区的程序设计.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《自由口通信模式下计算机读写 PLC 存储区的程序设计.pdf》由会员分享,可在线阅读,更多相关《自由口通信模式下计算机读写 PLC 存储区的程序设计.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 1自由口通信模式下计算机读写 PLC 存储区的程序设计 The Program Design to Read or Write Memories of PLC in Freeport Mode Using PC 重庆大学高电压及电工新技术教育部重点实验室 廖常初 范占华 Liao,Changchu Fan,Zhanhua 摘要:本文介绍了在自由口通信模式下,用计算机读写 S7-200 PLC 存储区内相邻的多个字节数据的通信程序设计方法,程序设计中采用了多种可靠性措施。关键词:PLC 通信 自由口模式 Abstract:The paper discusses the designing me

2、thod of the communication program by which PC reads from or writes to the memories of S7-200 PLC adjacent several bytes in Freeport mode.Many kinds of measures about reliability are used in the design.Keywords:PLC communication Freeport mode 1 引言 使用 S7-200 的自由口模式与上位计算机通信,其硬件成本低,适应性强,但编程较困难。本文根据自定义的通

3、信规约编制通信程序,实现了上位计算机对各 PLC 从站存储器中字节、整数或双整数数据的读写操作。2 通信规约 通信采用单主站方式,一台计算机作为主站,多台 PLC 作为从站。计算机采用广播方式主动向所有 PLC 发送包含从站站址的读/写命令帧,每次被计算机指定站址的一台 PLC收到后返回响应帧。通信波特率为 19.2k bit/s,串行数据格式为 1 位起始位,8 位数据位,1 位停止位,无奇偶校验,采用异或校验方式,校验码为除它本身外所有字节的异或值。计算机使用事件驱动方式接收数据;PLC 用 XMT(发送)指令发送数据,用字符中断方式接收数据。计算机读命令帧格式 帧起始 标志 站 址 数据

4、区字节数命令 字节 读取区首地址读取字节数校验码计算机写命令帧格式 帧起始 标志 站 址 数据区字节数命令字节写入区首地址要写入的数据校验码PLC 响应帧格式 帧起始 标志 站 址 数据区字节数命令字节PLC 接收正误标志(读取的数据)校验码 图 1 通信帧格式 图 1 是通信帧的格式,用阴影表示数据区。帧起始标志占 3 个字节,定义为十六进制数 BEBEBE。站址是计算机要读写的从站的编号。读命令字节为 CCH,写命令字节为 DDH,PLC 响应帧中的命令字节与接收到的命令字节相同,写命令的响应帧没有“读取的数据”2部分。除了帧起始标志、读写区的首地址和读写的数据外,帧中其余各部分均只占一个

5、字节。图 1 中当 PLC 对接收到的一帧数据校验无误而且命令字节为 CCH 或 DDH 时,响应帧中的“PLC 接收正误标志”为 1,否则为 0。命令帧中的读写区首地址为 PLC 内读写区域的起始字节地址的数字编码,PLC 接收到命令帧后可以将其作为指针,使用循环指令读写计算机指定的连续区域。经作者反复实验,得到了 PLC 内部多种存储区域地址的数字编码规律。该数字编码为双字,高字表示存储区类型(见表 1),低字表示偏移量。根据寻址区域和偏移量就可以得到地址编码,例如 MB3的地址编码为 0200 0003H,它等同于 PLC 程序中的&MB3,只是表示方式不同而已。在通信帧中使用地址的数字

6、编码可以简化 PLC 的程序。表 1 几种存储器区域地址高字编码 I Q M S V T C 0000H 0100H 0200H0300H0800H 0900H 0A00H 如果 PLC 接收超时,PLC 重新进入接收状态;如果计算机接收超时,重发 3 次命令帧,若 3 次均超时,发出报警信息。3 PLC 通信程序设计 3.1 接收程序和发送程序的设计 PLC 作为从站,只有接收到计算机的命令帧后才返回响应帧,不会主动发送数据。PLC 使用多个字符中断服务程序,顺次接收命令帧各部分的内容。在接收帧起始标志的中断服务程序中,只有接收到连续 3 个 BEH,PLC 才认为是一帧的开始,否则重新接收

7、帧起始标志。在接收站地址的中断服务程序中,将接收到的站址与本站站址相比较,如果相同,继续接收命令帧其余的字节,否则重新接收帧起始标志。这样每次只有一台 PLC 接收整个命令帧,避免了其余的 PLC 进行不必要的接收。在接收数据区的中断服务程序中,通过比较接收到的“数据区字节数”和实际接收到的字节数来判断数据区接收是否完成。接收完数据区后再接收到一个字节的校验码,则一帧接收完成,置发送允许标志位。主程序检测到发送允许标志位为 1 时,进行异或校验并检查命令字节,若接收正确,判断是读命令还是写命令。如果是读命令,将计算机要读取的数据送入发送缓冲区;如果是写命令,将计算机提供的数据写入指定的存储区地

8、址;最后计算异或校验码并将它送入发送缓冲区;组织好发送帧后将它发送出去。3.2 读写 PLC 存储区 首先从接收缓冲区中取出读写区首地址,存入符号地址为 Address 的双字中,用循环程序实现对多个字节的读写。读写 PLC 存储区的语句格式为 MOVB*pFrom,*pTo 计算机读存储区时,pFrom 指向 Address 开始的 m 个字节的连续区域,pTo 指向发送缓冲区,循环次数 m 为要读取的字节数。写存储区时,pFrom 指向接收缓冲区中要写入的 n 个字节 3的连续区域,pTo 指向 Address 开始的连续区域,循环次数 n 是要写入的字节数。3.3 接收缓冲区和发送缓冲区

9、 使用 XMT 指令时每次最多可以发送 255 个字节。由于 PLC 不能同时发送和接收数据,为了节省通信程序占用的存储空间和简化程序,接收缓冲区和发送缓冲区共用 VB100VB355 这片区域。接收数据时,只存储命令帧中的命令字节及其后的内容。VB100 是 XMT 指令发送缓冲区的首字节,即要发送的字节数,响应帧从 VB101 开始存放。对于某一从站来说,帧起始标志和站址都是固定值,可以在 PLC 首次扫描时将它们送入发送缓冲区。PLC 响应帧中的命令字节与接收到的命令字节相同,因此 PLC 在生成响应帧时,只需生成除帧起始标志、站址和命令字节以外的部分。经分析可知,计算机每次最多可以从

10、PLC 读取 247 个字节,向 PLC 写入 244 个字节的数据。4 计算机程序设计 计算机通过 PLC 响应帧中返回的站址号和命令字节判断是哪个从站对何种命令作出的响应,并结合 PLC 接收正误标志作出相应的处理。4.1 接收及通信出错处理 计算机采用串口事件方式接收 PLC 发出的响应帧。计算机将接收到的每个字节顺次放入接收缓冲区(动态字节型数组),通过数据区字节数判断对响应帧的接收是否结束。接收完成后,计算机对接收到的数据作异或校验,如果校验无误,命令字节为 CCH 或DDH,而且 PLC 接收正误标志为 1,计算机认为接收正确。如果计算机异或校验判断接收有误或 PLC 返回的接收正

11、误标志为 0,将重发同样的命令帧,若连续重发 3 次后均出错,则提示用户。4.2 命令帧的生成 在计算机中命令帧用字节型数组来表示。假设要读取 1 号站 PLC 中 MB6 开始的 3 个字节的数据,MB6 的地址代码 0200 0006H 应放在 PLC 接收缓冲区的 VB107VB110。根据 S7-200 的寻址方式,VB107VB110 各字节中的值分别为 02H、00H、00H、06H,PLC接收到的字节从低地址开始存放,所以在计算机中只需将以上 4 个字节顺次存放于命令帧数组即可。本例从 VB101 开始的读命令帧为:BE BE BE 01 06 CC 02 00 00 06 03

12、 72(十六进制数),最后一个字节(72H)为异或校验码。4.3 读写整数和双整数的方法 整数占用一个字,双整数占用连续的两个字。由于 PLC 和计算机中整数和双整数的存储方式相同,计算机可以把它们分别拆成 2 个字节和 4 个字节后发送,亦可将接收到的多字节组合成整数或双整数。读 PLC 中连续的 n 个整数时,可以转换为读连续的 2n 个字节,计算机接收到后将每相邻的 2 个字节组合成 1 个整数;同样的,读 n 个双字可以转化为读 4n 个字节,计算机接收到后将每相邻的 4 个字节组合成 1 个双整数。将 n 个字或双字写入 PLC 时,可将它们拆分成 2n 个字节或 4n 个字节,按高

13、字节在前,低字节在后的顺序放入发送帧中。拆分操作可用位逻辑运算来实现。例如,欲将 256 和-1两个整数写入PLC的MW6和MW8,首先将它们分别拆分为2个字节01H,00H和FFH,FFH,4设站号为 1,则写命令帧为 BE BE BE 01 09 CC 02 00 00 06 01 00 FF FF 7F(十六进制)。5 实验及结论 经多次实验表明,本文介绍的通信程序运行稳定可靠,能满足工程实用的要求。该程序的通用性好,计算机可以读写 PLC 中的多种存储区域,可设置读写的起始地址和字节数,每次最多可读写 240 多个字节,数据可以按字节、整数和双整数来读写。通过帧起始标志、PLC 接收正

14、误标志和异或校验保证了通信的可靠性,接收出错和超时出错重发送机制进一步提高了通信的性能。参考文献 1 Siemens AG.S7-200 Programmable Controller System Manual.Nuernberg,2002 2 廖常初.PLC编程及应用.北京:机械工业出版社,2002年 3 范逸之等.利用 Visual Basic 实现串并行通信技术.北京:清华出版社 作者简介:廖常初,男,1945 年 10 月出生,教授,1982 年在重庆大学电气工程系获硕士学位。主要从事 PLC 和现场总线应用、电力系统监控等方面的教学和研究工作。Tel:023-65104154,Em

15、ail:(400030 重庆大学高电压及电工新技术教育部重点实验室)廖常初 范占华 About the first author:Liao Changchu,male,Professor,received his MS degree from the Electrical Engineering Department of Chongqing University.Now he is teaching and researching on application of PLC and FCS,and on electric power system supervisory.(The Key Laboratory of High Voltage Engineering and Electrical New Technology of Ministry of Education,Congqing University,400030)Liao,Changchu Fan,Zhanhua

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁