基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信.doc_第1页
基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信.doc_第2页
基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信.doc_第3页
基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信.doc_第4页
基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于HostLink协议实现欧姆龙PLC-CJ1G与计算机的串口通信摘要:本文以欧姆龙公司的cj1g中型plc为例,介绍了欧姆龙hostlink即上位链接协议,详细的讨论了基于hostlink即上位链接协议的plc与计算机通信的原理、上位链接命令和用vb如何实现plc与计算机的通信。关键词:plc 串口通讯 fcs 上位链接plc是新一代工业控制装置,由于可靠性高、适应性好、抗干扰能力优、接口功能强、编程简单、直观以及模块化结构、使用方便等优点,在工业控制领域中,作为一种稳定可靠的控制器得到广泛的应用。但它也有自身的一些缺点,即数据的计算处理和管理能力较弱,不能给用户提供良好的界面等。而计算机恰好能弥补plc的不足,它不但有很强的数据处理和管理能力,而且能给用户提供非常美观而又易于操作的界面。将plc与计算机结合,可使系统达到既能及时地采集、存储数据,又可处理和使用好数据,两者结合的关键是plc与计算机之间的通信。本文以欧姆龙公司的cj1g中型plc为例,详细的讨论了基于hostlink协议的plc与计算机通信的原理和用vb如何实现plc与计算机的通信。1、欧姆龙hostlink简介欧姆龙公司的cp、cqm、c200、cj、cs1等plc的串行通讯都是采用hostlink协议进行通讯的,hostlink协议是欧姆龙的专有协议,通过hostlink协议使用计算机的串行口可与omron的plc设备通讯。上位机链接系统即hostlink系统是对于弱电系统集成一种即优化又经济的通信方式,它适合一台上位机与一台或多台plc进行链接。上位机可对plc传送程序,并监控plc的数据区,以及控制plc的工作情况。hostlink系统允许一台上位机通过上位机链接命令向hostlink系统的plc发送命令,plc处理来自上位机的每条指令,并把结果传回上位机。hostlink协议系统可使上位机对plc的程序进行传送或读取,并可对plc数据区进行读写操作。所有通信都将作奇偶检验和帧检验的双重检查系统,从而能估计出通信中的错误。可以使用plc自带的rs-232c口与上位机进行连接,也可使用欧姆龙专用的通信板进行连接。通讯参数设置应与设备的通讯参数相同,默认为:9600,7,2,e(偶校验)。plc与计算机之间的连接线是omron提供的专用电缆cj1w-cn118来实现的,也可自制通讯电缆来实现,其连接图如图1所示。2、上位机与plc间通信的基本原理要实现上位机与plc间的通信,欧姆龙cj系列plc与上位机通讯可以采用上位链串行通信模式。进行上位链接通信时,上位机与plc间使用命令和响应进行发送接收。而命令与响应都是以“帧”为单位进行的。首先,上位机向plc发送命令,同时把发送权移交给plc,plc接收到上位机的命令后,进行fcs校验,fcs校验就是把从一帧的开始到fcs前面的数据进行逻辑异或得到的8位数据变换成2个字符的ascii码,对接收信息的各帧计算fcs,并同时附加在帧后的fcs进行对照校合,就能检查数据错误。数据正确后再由plc向上位机发送响应,这样就完成了一次通讯。3、上位机与plc间通信命令与响应的格式(1)命令格式,如图2所示。:表示以开始,而且必需以以开始。设备号:是上位机用来识别所连接plc的唯一号码。识别码:就是命令码,设定为两个字符的长度。正文:设定命令参数。fcs:设定为两个字符的检验码,如果通信出错通过计算fcs校验码,就可以及时发现。终端:命令结束,用两个字符设定即“*”和cr回车符来表示。(2)响应格式,如图3所示。:表示以开始,而且必需以以开始。设备号:是上位机用来识别所连接plc的唯一号码。异常码:返回命令的执行状态(有无错误)。正文:在有读出数据时返回。fcs:设定为两个字符的检验码。终端:命令结束,用两个字符设定即“*”和cr回车符来表示。(3)欧姆龙上位链接命令介绍。欧姆龙公司提供的上位链接命令,用于对欧姆龙plc 进行相应的读写操作,常用上位链接命令如表1:4、基于vb的通信程序设计为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计算机与plc的通信,计算机向plc发出命令发起通信,plc自动返回响应。本文中采用了vb来编写计算机与plc间的通讯程序。(1)计算fcs校验的vb自定义函数如下:function fcs(byval inputstr as string) as stringdim slen, i, xorresult as integerdim tempfcs as stringslen=len(inputstr) (求输入字符串长度)xorresult=0for i=1 to slenxorresult=xorresult xor asc(mid$(inputstr,i,1) (按位异或)next itempfcs=hex$(xorresult) (转化为16进制)if len(tempfcs)=1 then tempfcs=“0”+tempfcsfcs=tempfcsend function(2)计算机与plc通信程序。读plc的 vb自定义函数如下:public function myread(origword as string, numread as string)dim readcom as stringdim i2 as integerdim readword as stringstatic tim1 as integerstatic tim2 as integeron error goto errdealif mainmenu.ms1.portopen=false then mainmenu.ms1.portopen=truereadcom=“00rd”+origword+numread (读dm区,前四个表示起始字,后四位表示字数)readcom=readcom+fcs(readcom)+”*”+chr(13)i2=0mainmenu.ms1.inbuffercount=0mainmenu.ms1.output=readcomdodoeventsi2=i2+1loop until mainmenu.ms1.inbuffercount= cint(numread)*4+11 or i210000if i25 thentim1=0if warndis1=true then exit function goto mss2msgbox”上下位机通信错误,请检查!”, vbcritical,”警告”warndis1=trueend ifend function写plc的 vb自定义函数如下:public sub mywrite(orgiword as string,wrstr as string)dim writcom as stringdim i2 as integerdim resstr as stringdim tim as integerwritcom=“00wd”+orgiword+wrstr(写dm区,前四个表示起始字,后四位表示写入值)writcom=writcom+fcs(writcom)+”*”+chr(13)i2=0mainmenu.ms1.inbuffercount=0mainmenu.ms1.output=writcomdodoeventsi2=i2+1loop until mainmenu.ms1.inbuffercount=11 or i210000if i210 thenmsgbox”上下位机通信错误,请检查!”,vbcritical,”警告”end ifend sub从上面程序可以看到,计算机对plc返回的响应帧要进行fcs校验,并利用异常码排除返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论