运用VC技术实现上位机与OMRON品牌PCL串行通讯.docVIP

运用VC技术实现上位机与OMRON品牌PCL串行通讯.doc

  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技术实现上位机与OMRON品牌PCL串行通讯

运用VC技术实现上位机与OMRON品牌PCL串行通讯   摘要:文章介绍了可编程控制器(PCL)与上位机(PC机)实现串行通信功能的硬件组成、通信协议,重点阐明在上位机(PC机)上基于VC++6.0的编程实现细节,并进一步展望PLC对控制系统应用的前景。   关键词:可编程控制器(PCL);VC++   中图分类号:TP312文献标识码:A文章编号:1006-8937(2009)08-0112-02      鉴于目前由可编程控制器(PCL)和PC机所构成的监控系统在工业控制领域得以广泛的运用,文章将对PCL作下位机,完成现场设备的直接控制、数据收集等工作,PC机作上位机,完成数据的分析存储、状态显示等工作进行技术探讨,通过上位机对PLC的读写操作,从而完成现场数据的接收、传达与监控功能。文章以OMRON公司的CJ1G型PLC作下位机,以PC机为上位机,重点研究此分布式控制系统的通讯方式。      1硬件互联技术细节      1.1PLC与PC的硬件互联   经过对该品牌PLC的分析,可知PLC本身配有RS-232接口,大大方便了与PC机串口通信的硬件连接,文章直接采用自制电缆将PLC的RS-232口与PC机RS-232口相连,引脚对应关系图如图1:   1.2设定PLC通信方式,确定通信协议帧   CJ系列PLC单元支持以下5种串行通信功能:上位机链接通信、无协议通信、1:N或1:1链接通信、外设总线通信和串行PLC链接通信,其中上位机链接通信功能适用于上下位机并以会话的方式进行实时数据通信。   一般在控制系统中,采用单台PLC与PC机通信,上位机担当命令发起端,通过向PLC发送不同格式的命令帧,完成对PLC寄存器的读写操作。因此文章选择主机--PLC的主链接命令通信方式。      该系统使用RS一232C端口进行通信。RS一232C端口的缺省设定是:上位机链接模式、1启动位、7数据位、偶校验、2停止位和9 600bps的波特率。用户可以通过编程工具或者SETUP(237)指令改变RS一232C端口的设定。我们首先用编程工具对PLC进行设置,其中PLC的操作模式设定为监控模式;然后断开电源,将主机与PLC的CPU单元连接,并将CPU单元DIP的引脚5设定为OFF;最后接通电源,从主机发布主链接命令,进行上下位机的通信。   由于整个通信系统采用上位机主动的通信方式。上位机与PLC的通信是通过使用命令帧(command)和响应帧(response)进行数据的发送和接收。帧的发送与接收图2所示:      命令的格式如图3所示,命令必须以@开始,机号No为2个十进制数,表示上位机识别所连接PLC的机号。识别码是2个字符的命令码,如RR表示读取CIO区域的内容。正文部分为设定命令的参数,对于不同的命令,正文的内容和长度可能有所不同。FCS是2个字符的帧检查序列。命令的最后2个字符是终端,表示命令的结束,由“*”和CR码组成。命令格式图3所示:   图3 命令格式      响应的格式与命令的格式相似,只是在识别码后面多了2个十六进制字符的结束码,用于返回命令的执行状态(有无错误及错误的原因)。一个帧最多由131个ACSⅡ字符组成,如果需要发送的字符超出131个,必须将数据分成若干个帧,第一帧和中间帧的结尾用分界符(CR)代替结束符(*CR)。   VC++6.0软件实现VC++6.0开发环境为串口通讯已经提供了ActiveX控件,名为MSComm控件。下面阐述对该控件属性的初始化设置以及相关实现代码。限于篇幅,此文只将重要的实现代码罗列如下:   {   My_Comm.SetCommPort(1);//选择 COM1口   My_Comm.SetSettings( 9600,E,7,1 );//设置通信参数   My_Comm.SetlnputMode(1);//设置二进制输入模式   My_Comm.SetInBufferSize(1024);//设置输入缓冲区大小   My_Comm.SetlnputLen(0);//使用Input将使MSComm控件读取接收缓冲区中的全部内容   My_Comm.SetOutBufferSize(1024);//设置输出缓冲区大小   My_Comm.SetRThreshold(1);//设置每接收一个字符触发一次OnComm事件   My_Comm.SetDTREnable(TRUE);//置DTR有效   int timeRes;   if(!My_Comm.GetPortOpen()) //如果没有开   My_Comm.SetPortOpen(TRUE);//手工打开串口   My_Comm.Getln

文档评论(0)

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

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

1亿VIP精品文档

相关文档