西门子S7-200与C++ Builder间通讯设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西门子S7-200与C++ Builder间通讯设计.doc

西门子S7-200与C++ Builder间通讯设计   摘要:建立下位机PLC控制系统和基于C++ Builder设计的上位机监控系统之间的相互通信,在相互通信的过程中,PLC使用了自由口通信模式,而C++ Builder借助于第三方MSComm控件。在此基础上才能完成控制系统和监控系统的相关程序的编制和设置,为小型自控项目提供技术平台。   关键词:PLC;C++ Builder;自由口通讯   中图分类号: I253文献标识码: A      1.概述   对于多数的小型控制系统而言,在注重性能稳定和功能齐全的同时,投入成本也是必须考虑的因素之一。相对于市场上其他逻辑控制器,西门子S7-200 PLC性价比较高;而采用第三方软件(如VB或BCB等高级语言)编制的监控系统不仅灵活性好、系统投资低而且系统升级较为方便、适应范围更广。本设计在于完成基于西门子S7-200 PLC与第三方软件(C++ Builder)编制的监控系统间通讯从而为小型项目自控系统的设计打下基础。   2. PLC系统通讯程序设计   2.1自由口模式通信   自由口模式下程序可以通过接收中断、发送中断来完成发送和接收,也可以通过使用定时器实现定时执行发送指令和接收指令,从而完成数据交换和通讯。S7-200只有在RUN方式时自由口通信模式才被允许使用。   自由口通信指令包括自由口发送(XMT)指令和自由口接收(RCV)指令。发送指令(XMT),可以将数据缓冲区中的数据通过指令指定的通信端口发送出去,发送完成时将产生一个中断。接收指令(RCV),可以通过指令指定通信端口接收信息,并将其存储于接收缓冲区中。   用自由口通讯指令最多可以实现255个字符的数据交换,可以通过查询SM4.5和SM4.6的变化来判断是否发送完成。   数据缓冲区(TBL)操作数采用VB等;端口(PORT)为常数,其值的确定是依据所选用的CPU型号,TBL中数据存储格式如下:      表2.1 数据缓冲区格式            此外,完成自由口通信还必须对控制寄存器及特殊功能寄存器进行相关设置,设置格式如下:   表2.2 控制寄存器设置方式            表2.3 特殊功能寄存器功能表述            本设计采用PC/PPI电缆作为上位机和下位机的连接线,而PPI电缆的一端是RS485属于半双工通信方式,故接收和发送不可以同时进行,这里就涉及到一个接收指令和发送指令交替使用的问题。当PLC要发送数据时,必须保证接收使能位复位,而接收时还得需将接收使能位置位。关于使能位的置位和复位势必用到了接收信息控制字节即SMB87(SMB187),这也是在整个接收和发送过程中用的最频繁的控制字节。SMB87(SMB187)的位功能介绍如表2.4所示。对自由口端口初始化设置时,需分别为SMB30、SMB87、SMB94赋值16#09、16#B0和100。      表 2.4 接收信息控制字节的位功能            2.2 发送程序和接收程序的设计   在选择好自由口作为本次通信模式后,首先要进行协议的自定义,本设计中通信中采用的自定义协议如表2.5和表2.6所示。   表2.5 PLC向IPC发送数据格式            表2.6 PLC接收IPC数据格式            由于RS485的原因,接收和发送不能同时进行,所以要对接收和发送两个过程实现自动切换,使得接收和发送过程互不影响。本设计中采用定时器,是接收和发送子程序定时间隔执行。自由口通信下的接收程序在执行时必须保证接收使能位有效,即必须对SM87.7进行置位后,再执行RCV指令。   在使用XMT指令执行发送程序需要特别注意,在进行发送之前先必须将接收使能位(SM87.7)复位,同时再执行一次RCV指令,保证接收缓冲区的数据全部被读出,最后再执行XMT指令。   为了保证向上位机发送的数据准确可靠,PLC发送程序中加入发送数据的起始符和结束符号,以保证发送数据的准确,便于上位机采用查询方式接收数据。   3. 上位机通信程序设计   上位机程序中调用MSComm编写通信程序 ,波特率为9600bps、无校验、通信端口号为1,InputLen的值为1。   本系统在设计过程中为了迎合人们的习惯,决定采用十进制作为上位机数据输入格式,但是通信过程中数据以ASCII的形式参与各种运算,同时在PLC中实现ASCII转化功能最常用的指令是ATH,为了实现数据格式统一需要将待发送数据转化成十六进制的形式,相关函数为IntToHex()。   在MSComm控件下,为了保证数据的精确性,以免因数据传输问题而出

文档评论(0)

fa159yd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档