




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信捷PLC与计算机串口和以太网通信的VC+编程技术文献标识码:ADOI: 10.3969/j.issn.1003-6970.2015.06.014 本文著录格式:朱向荣,冯乔生,施少捷,等,领域模型中关联语义的描述逻辑表示与应用J. 软件,2015, 36( 6):75-82TechniquesofCommunicationVC+pr02rammingforXinjieP LCwithPCthroughSerialCommunicationPortandEthernetAdapterZHUXiang-rong1 , FENGQiao-sheng1, SHIShao-jie2 , LVLing-
2、zhj3 :XinjeXCseriesPLCisakindofcompletedomesticproduct.Ifthei rupperPCprogramscanbepro-grammedwiththegeneralhigh-leve llanguage , ratherthantheirmodalsoftware , itisenabledtointegratetheupperPCcontrolprogramsofthePLC withthecontrolprogramsofotherdevices , andXCseriesPLCcanthenbefurtherwidelyused.Thi
3、spaperpropo sedthetechniquesofVC+programmingofcommunicationsbetwee nPCandXCseriesPLCthroughRS232andEthernetnetworkadapterr espectively , whichenabledtheVC+upperprogramstosenddatatotheXCseriesPLCorreceivethedatafromthem.TheremotecontrolsoftheXCser iesPLCcanthusbeimplementedbytheVC+upperPCprograms.Key
4、words : XinjieXCseriesPLC ; RS232;PCEthernetadapter ; Modbusprotocol0 引言本文的研究来源是针对昆明鑫辉检测XX公司对于多用途高空爬行器平台的研发。多用途高空爬行器平台具有超声波检测功能和对周围环境监控的功能,这就需要爬行器搭载相应的设备。信捷XC系列PLC通过模态软件开发控制程序,再与信捷电气XX公司自主研发的人机界面通信从而达到控制PLC的效果。然而对于多用途高空爬行器平台就有很大的限制,爬行器上位机监控程序不能与其它设备进行集成。本文研究XC系列PLC上位机监控程序的VC编程1 技术, 希望这项技术能应用于多用途爬行器平
5、台的研发,实现通过VC程序来控制爬行器的运动,从而实现XC系列PLC上位机监控程序2 与其它设备用户界面程序的有效集成。PLC与上位机PC的通信是开发PLC上位机监控程序的关键环节,按应用环境的不同,可采用RS-232 通信方式,基于无线ZigBee3 的近距离无线通信方式。和基于以太网的远距离通信方式。本文针对昆明鑫辉检测XX公司的应用需求,主要研究基于 RS-232 的通信与以太网的通信方式的VC编程技术。1 信捷 XC系列PLC通讯功能1.1 概述XC系列PLC都支持Modbus协议、自由协议通讯功能,其中XC5系列中48 点与 60 点机型与XCC系列PLC还具有CANbus总线功能。
6、XC系列PLC有 2 个通讯口(Portl 、 Port2 )。通讯口1( Portl )为编程口,支持RS232方式,可以用来下载程序以及连接外接设备,此通讯口的通讯参数(波特率、数据位等)可以通过软件重新设置。通讯口2( Port2 )为通讯口,可以用来下载程序以及连接外接设备,此通讯口的通讯参数(波特率、数据位等) 可以通过软件重新设置,其中 port2 既支持RS232又支持RS485( RS485端子在输出端,A为 485+、 B为 485-),但需注意两者不能同时使用。XC系列PLC通讯参数:站号1-254 表示是 Modbus通讯方式,255( FF)为自由格式通讯。波特率为30
7、0bps-115.2Kbps 。 数据位有8个和 7个数据位两种。停止位有2 个和 1 个停止位两种。有偶校验、奇校验、无校验三种。通讯口默认参数:站号为1、波特率19200bps、 8 个数据位、1 个停止位、偶校验。信捷公司的XCPPro编程软件中集成了修改通讯口的模块,通过软件来修改通讯口参数,方便直观,且不易出错,修改完成后,重新上电才能生效。1.2Modbus协议简介4Modbus协议是应用于电子控制器上的一种通用语言。通过此协议, 控制器相互之间、控制器经由网络和其它设备之间可以通信,它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义
8、了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的, 它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录,它制定了消息域格局和内容的公共格式。当在一个Modbus网络上通信时, 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。1.2.1 传输方式通信传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限则,Modbus协议有两种传输方式,RTU方式和 ASCII 码字符串方式,以RTU模式在Modbus总线上进行通讯时,信息中的
9、每8 位字节分成2 个 4 位 16 进制的字符,每个信息必须连续传输下面定义了与Modebus协议RTU方式相兼容的传输方式。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。信捷PLC按字符串方式与终端传感器通信,而按RTU方式与上位机通信,所以本文主要研究RTU方式和PLC通信的VC编程技术。1.2.2 RTU 数据帧格式ModbusRTU信息帧5 如图 1 所示, 所允许的最大长度为256个字节, 即 N 的范围是大于等于零且小于等于252( NO, 252) 。地址域:信息帧地址域
10、在帧的开始部分,由8 位组成,有效0-247 ,各从机设备的寻址范围为1-247主机把从机地址放入信息帧的地址区,并向从机寻址。从机响应时, 把自己的地址放入响应信息的地址区,让主机识别已作出响应的从机地址。地址0 为广播地址,所有从机均能识别。功能域: 信息帧功能域代码告诉了被寻址到的终端执行何种功能。有效码范围1-225,有些代码是适用于所有控制器,有些适应于某种控制器,还有些保留以备后用,信捷XC系列PLC功能码对应的功能及对应的Modbus指令如下表1。当主机向从机发送信息时,功能代码向从机说明应执行的动作。如读一组离散式线圈或输入信号的ON/OFF状态,渎一组寄存器的数据,读从机的诊
11、断状态,写线圈(或寄存器),允许下截、记录、确认从机内的程序等。当从机响应主机时,功能代码可说明从机正常响应或m现错误(即不正常响应),正常响应时,从机简单返回原始功能代码;不正常响应时,从机返回与原始代码相等效的一个码,并把最高有效位设定为“1”。数据域: 数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者极限值。它由数据区有2 个 16 进制的数据位( 2 的 8次方256),数据范围为OO-FF( 16进制)。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之
12、间的不同能力而有所不同。若无错误出现,从机向主机的响应信息中包含机能判断并做出下一步的动作。信捷XC系列PLC线圈空间地址为表 2,寄存器空间地址为表3。CRC-16循环冗余校验码:目前较常用的CRC位数目有8 和16以及32,在这里只讲述如何写CRC位数目为16的程序。CRC位数目越大,数据的错误检测率则越高,但必须多花一些时间进行数据的计算。CRC-16的计算方法有两种:查表法与计算法,在这里只介绍计算法。生成一个CRC的流程为:Step1 、预置一个16 位寄存器为OFFFFH(全1),称之为CRC寄存器。Step2、把数据帧中的第一个8 位字节与CRC寄存器中的低字节进行异或运算,结果
13、存回CRC寄存器。Step3、将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。Step4、如果最低位为0:重复第3 步(下一次移位)。如果最低位为1:将CRC寄存器与一个预设的固定值(OAOOIH)进行异或运算。Step5、重复第3步和第4步直到8次移位。这样处理完了一个完整的八位。Step6、重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。Step7、最终CRC寄存器得值就是CRC的值。它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将白己生成的数据加入到取得的“信封”中,把数据帧返回
14、给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令( Function ) 、 执行命令生成的被请求数据( Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。2VC+程序与XC系列PLC串口通信技术62.1 上位端PC机程序的设计我们设计了CSearchDevices 类 7 来进行计算机上串口的搜索、PC机与PLC的串口通信连接、命令与数据读写,即包括下列几个成员函数:( 1) voidSearchSerialCommPort ( void )该函数搜索上位机PC可用的串口。( 2) HANDLEOpenCommunicationDe
15、vic(e intindex , boolwriteFlag , intbaudRate , intbyteSize , intparity , boolsynchrose )该函数是打开和设置串口参数。第一个参数是串口的索引号。第二个参数是指定串口是按哪种方式打开(一种是可渎、可写,另一种是可读)。第三个参数是指定波特率的大小。第四个参数是发送和接收比特的字节数。第五个参数是指定校验方式( 0表示无校验,1 奇校验,2 表示偶校验),本项目采用的是偶校验。第六个参数如果是TRUE,则通过CreateFile 函数允许对文件进行重叠操作。( 3) voidCRCCodeing( BYTE*da
16、ta, intnumBytes )该函数是生成CRC-16循环冗余校验码。第一个参数是一个BYTE类型指针,传进到该函数的是一个BYTE类型数组的地址,调用此函数时这个参数可用将要检验的BYTE类型数组名。第二个参数是这个BYTE类型数组的长度。通过上面介绍的生成CRC-16循环冗余校验码步骤方法,将生成的校验码依次从高到底放人最后两个字节。( 4) DWORDSendDa( taBYTE*buf, DWORDdwLeng, th HANDLEfileHandle )该函数是用于发送数据。第一个参数是一个BYTE类型指针,传进到函数的是一个BYTE类型数组的地址。这个地址可以用将要发送出去的B
17、YTE类型数组名代替。第二个参数是BYTE类型数组的长度。第三个参数是发送数据串口的句柄。( 5) DWORDReadDa( tachar*buf , DWORDdwLeng, th HANDLEfileHandle )该函数是用于接收数据。第一个参数是一个BYTE类型指针,传进到函数的是一个BYTE类型数组的地址。这个地址可以用将要把接收的数据放到BYTE类型的数组名代替。第二个参数是BYTE类型数组的长度。第三个参数是接收数据串口的句柄。( 6) voidCloseDevice ( HANDLEfileHandle )该函数是通过调用CloseHandle ( fileHandle )函数
18、,释放串口资源。其中 CloseHandle 函数所调用的是一个句柄类型的参数 fileHandle , fileHandle 是 OpenCommunicationDevice 函数调用 CreateFile 函数的返回值。创建该类的实例,调用上述成员函数,就可实现PC机与信捷 XC系列PLC之间的通信功能。我们在上位机控制程序的按钮消息处理函数中调用这些函数实现通过RS232串口与爬行器中PLC的通信,实现对爬行器的运动控制。例如,想要爬行器向前行走时, 就点击“前行”按钮, 此时程序负责将指令数据通过串口发送给PLC,控制爬行器行走。2.2 上位机端PC与 PLC通信的实验验证本文用图二
19、所示的PLC梯形图程序来验证PC机与信捷XC系列 PLC通信的VC+编程技术,即只要在上位机PC的 VC程序中能对信捷XC系列PLC线圈M3置成ON状态时,PLC上 YO、 Yl 、Y2、 Y3、 Y4、 Y5指示灯会亮,从而通过观察这些灯是否亮来验证 VC程序与PLC通信是否成功。本文用XC系列编程T具 XCPPror软件编写该梯形图程序下载到PLC中。未置M3前,信捷PLC的指示灯状态图如图三所示,即 YO-Y5的指示灯均处于熄灭状态。然后在上位机VC程序中发送了十六进制表示的数据帧:01050003FF003C58。 按从左到右的顺序, 开始的 1 个字节是PLC站号、第 2 个字节代表
20、功能码,05H=写单个线圈指令。第3、 4 字节是线圈地址,第5、 6 字节是将线圈 M3置成 ON状态。第7、 8 字节是校验码高字节和低字节。PLC的指示灯YO-Y5的状态如图四所示,即它们均处于发光状态,从而证实了“置M3”的命令(03H)正确无误地发送到了PLC。3VC程序与XC系列PLC以太网通信技术3.1 Modbus协议在 TCP/IP 上的实现ModbusTCP8是运行在TCP/IP 的 Modbus报文传输协议。通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信。ModbusTCP是开放的协议,IANA( InternetAssignedNumberAut
21、hority ,互联网编号分配管理机构)给Modbus协议赋予TCP编号为502,这是目前在仪表与自动化行业中唯一分配到的端口号。ModbusTCP/IP协议模型为:图5事物处理标识箱的长度为2 个字节,Modbus请求/响应事务处理的识别,客户机启动而服务器从接收的请求中重新复制。协议标识符的长度为2 个字节,当为0 时表示是Modbus协议,客户机启动而服务器从接收的请求中重新复制。长度为2 个字节,表示随后字节数量,客户机启动(请求) 而服务器 (响应) 启动。单元标识符为1 个字节, 串行链路或其它总线上连接的远程从站的识别,客户机启动,而服务器从接收的请求中重新复制。在通信应用层中,
22、Modbus客户机允许用户应用控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口的发送要求中所包含的参数来建立一个Modbus请求,并且提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问。Modbus服务器在收到一个 Modbus请求以后,模块激活一个本地操作进行读、写、或完成其它操作。在客户机和服务器的Modbus模块之间的通信需要使用TCP连接管理模块,负责全面管理报文传输TCP连接。在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。可以对TCP/IP 的栈进行参数配置,以适用于不同的产品或系统特定
23、的约束条件,来进行数据流控制、地址管理和连接管理,使用BSD套接字接口来管理TCP连接。3.2 上位端PC机程序的设计为了能达到上位端PC机与PLC的 TCP/IP 通信, 采用 Socket编程 9 。它们的通信模式如图7。在此模式下PC机是作为客户端,PLC作为服务器端。在信捷 XC系列PLC的以太网络通信模块XC-TBOX-BD-T201上具有四个拨码开关,每个开关有两种状态为ON/OFF如图8 所示。拨码开关对应功能如表4 所示:针对昆明鑫辉检测XX公司对于多用途高空爬行器平台的研发。所采用的设置为Sl 开关置成OFF状态。S2开关置成ON状态。 S3开关置成OFF,选择默认地址与PC
24、机进行通信。将PC机的 IP 地址设成与PLC在同一网段的其它任何IP 地址, 我们设置成 192.168.0.112 。通过 Socket 实现以太网通信连接的三个关键步骤如下:( 1)调用 WindowsAPIsocket 函数创建套接字:hServer=socket ( AF_INET, SOCK_STRE,AMIPPROTO_IP) ; /TCP 套接字( 2)定义套接字结构体并进行设置:sockaddr_insaServer=0 :saServer.sin_family=PF_INET ;saServer.sin_port=htons ( 502);/ 连接PLC所用到的端口saServer.sin_addr.s_addr=inet_addr(”192.168.0.111 ”); /PLC 的 IP 地址( 3) 调用 WindowsAPIconnect 函数创建PC机与PLC的以太网通信连接:nRet=connect( hServer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶租赁合同标准示范文本
- 签订的办公楼租赁与物业管理合同
- 维护网络安全应该怎做
- 国际物流模拟题与参考答案
- 电工基础复习题(附参考答案)
- 旅游经济学试题库含答案
- 中级制图员考试模拟题(附答案)
- 新上任管理岗位指南
- 场地租赁合同范例
- 采购供应合同集合
- Python快速编程入门(第2版)完整全套教学课件
- 自考15040习新时代思想概论高频备考复习重点
- 2024年辅导员职业能力大赛的基础知识题库解析
- 心电监护操作评分标准
- 搅拌站安全培训试卷
- 茶叶市场营销讲义
- 走进中国传统节日 详细版课件
- GB∕T 37244-2018 质子交换膜燃料电池汽车用燃料 氢气
- API SPEC 5DP-2020钻杆规范
- 乙肝两对半ppt课件
- 锅炉空气预热器拆除安装方案
评论
0/150
提交评论