VC环境下PLC与上位机的实时通信.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文档。上传文档
查看更多
VC环境下PLC与上位机的实时通信 1??前言 ??????可编程控制器(plc)是集计算机技术、自动控制技术、通信技术为一体的新型自动控制装置。由于体积小、可靠性高以及组态灵活等优点,plc在工业控制领域得到了广泛的应用。在plc组成的自动测量和控制系统中,一般采用主从式控制结构,由plc向计算机发送数据,计算机处理数据后根据具体情况向plc发出相应的指令,控制plc的运行。plc作为下位机,完成数据采集、状态判别、输出控制等任务,上位机(微型计算机、工业控制机)完成采集数据信息的存储、分析处理、状态显示以及打印输出等任务,以实现对系统的实时监控。目前市场上常用的人机界面或监控组态软件价格昂贵且由国外公司垄断,?对于小型企业的单机系统来说,许多功能并不实用,同时组态软件的本身也还存在不足之处,不能满足一些特殊要求。因此,目前仍然需要技术人员根据实际情况开发小型经济适用的软件。笔者针对比较简单的控制系统,利用vc++6.0设计了一个通信程序,实现了windows环境下上位计算机对多台plc的灵活监控。? 2??通信类型 ??????日本三菱公司是国际著名的工厂自动化设备制造商,其工业可编程控制器在国内市场占有相当大的份额。本项目选用三菱fx2n-48mr型plc,fx系列plc支持以下5种通信类型:? ????(1)?plc的n:n通信方式; ????(2)?plc双机并联通信方式; ????(3)?plc与计算机专有协议通信方式; ????(4)?plc与计算机无协议通信方式(使用rs指令或fx2n-232if特殊功能块); ????(5)?自由端口设计方式(需要特殊通信模块,使用较少)。 ??????各种通信类型的具体特性列于表1。本系统采用专有协议通信方式,以pc机为主站,通过fx-485pc-if及fx2n-485bd与多台plc从站连接(最多16台),每台plc被赋予唯一的站号用以标志身份,上位机通过rs-485通信总线对plc进行控制。 3?通信协议 ???????fx2n系列plc通信采用异步格式,较常用的数据帧由1位起始位、7位数据位、1位停止位及1位校验位组成,波特率为9600bps。传输数据以字节为单位,分为高4位和低4位,每4位转化为1个ascii字符发送。以上位机从plc读取数据为例。 ??????计算机方发送数据帧格式如表2所示: ??????enq是请求通信标志;station?no.代表plc站号,设定范围00h-0fh;pc?no.?是plc的cpu代号,fx系列为ffh;command是操作命令码,具体内容列于表3;message?wait?time表示从命令发出到plc回应之间的等待时间,允许值从0-150ms,设定为00h-0fh;character?area?a为传送字符串,包括位元件或字元件的首地址和单元字节个数;?sum?check?code是和校验码,分为高4位和低4位。 ??????plc应答格式如表4所示。 ??????stx是帧开始字符;character?area?b为传送数据,fx系列plc一次最多可以传送64比特即40h数据;etx为帧结束字符;其余含义同上。 ??????本程序的主要功能为,每隔一定时间(由用户通过界面设定)按站号顺序批量读取plc中位元件y000-y017的状态,将数据存放入数据库plc表中。 ??????总共有2台plc,对于站号为i?的plc,命令格式如表5所示。? 4??软件编程 ??????软件设计选用visualc++6.0作为开发平台,利用其提供的mscomm控件,可以方便地实现plc与上位机的串行通信。该通信控件提供了使用rs232开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。该控件有27个属性,主要的属性如表6所示。 ??????首先将mscomm控件加入工程,同时安装1个系统定时器。通信控件m_mycom用于访问串口、发送和接收数据;系统定时器用于控制每隔一定时间间由上位机向plc发送命令。通信程序部分代码如下: //?首先初始化通信端口? bool?cplccommdlg::oninitdialog() {…… m_mycom.setcommport(1);??file://选择com1 m_mycom.setinbuffersize(1024);?file://设置输入缓冲区的大小 m_mycom.setoutbuffersize(512);??file://设置输出缓冲区的大小 m_mycom.setinputmode(1);//设置数据获取方式 m_mycom.setsettings(9600,e,7,1);//

文档评论(0)

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

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

1亿VIP精品文档

相关文档