PLC的RS-485口与计算机通信实现远程监控_第1页
PLC的RS-485口与计算机通信实现远程监控_第2页
PLC的RS-485口与计算机通信实现远程监控_第3页
PLC的RS-485口与计算机通信实现远程监控_第4页
PLC的RS-485口与计算机通信实现远程监控_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、PLC 的 RS-485与计算机通信实现远程监控一、概述台达 DVP 系列 PLC 因其功能齐全、结构紧凑、组网简单、通信协议公开等特点而受到海内外客户的盛誉!台达 DVP 系列 PLCSRS232RS485 于一身,且在组网方面 PLC 端无需增加任何通信转接设备,网络连接简单,通信稳定可靠,可据用户的意念对其进行编写通信程序,使用方便。本文介绍计算机与台达 PLC 之间用 RS-485 通信实现远程监控, 计算机作为主站,可以实现对 PLC 从站各寄存器的读/写操作。计算机通过 COMR 发送指令到 PLC 的 485 口,PLC 通过通彳 t 串行 I/O(RS 指令,然后对指令进行译码

2、,译码后调用相应的读/写子程序实现指令要求的操作,并通过通信串行 I/O(R0 指令返回指令执行的状态信息。文章用中央空调监控系统为例子,为解决在计算机中能用 RS-485 与PLC 通信,在计算机中加才 f 一块两口的 RS232/RS485 专换卡,口号为(COM3COM4;现场用 8 台台达 DVP20EX00 阵为控制子站(J1J8),其中 J1J45个子站连成一个485子网与计算机COMR通彳J5J85个子站连成一个485子网与计算机 COM 布通信。计算机上运行的程序由 VB6.0 环境下实现(可用任一高级语言)。A、计算机从各 PLC 中读取当前的实时采样资料(温度、室内压力、湿

3、度、各个风阀的开度与状态、各 IO 及中间状态);B、对 PLC 设定温度、湿度;C、对 PLC 设定各个 PID 参数(每台 PLC8 个 PID)D、对 PLC 设定开关机延时参数E、对 PLC 设定温湿控制中的快启参数1、出于如下考虑我们选用 RS-485ADV 添列 PLCM 有 RS-485 口与通信能力;B 整个系统有多台 PLC 子系统组成;C 原有 RS-232 已用于与其它设备通信;系统功能:计算机在 0.5 秒内完成对所有PLC 资料的读取、处理与显示二、系统方案及网络结构D 各子系统相距较远(最大距离 600 米);E、抗干扰性强,有利于精确度的控制。2、系统硬件组成A、

4、DVP 系歹 U(DVP20EX0QRPLC 自带 RS232 与 RS485 口,组网方便;B、2 芯带屏蔽双绞线:抗干扰性强;C 工业控制计算机:稳定性好;DRS232/RS485 专换卡:安装后,可象计算机自带的 RS232 口一样使用。三、通信实现DVP 系列 PLC 的 485 通信方式较为灵活,通俗地说其通信方式可分为:自由方式与可定义方式两种。本文中用自由方式的通信格式(即不对起始字符与结束字符定义)。1、通信串行 I/O 指令DV 晾列 PLC 指令集中有一指令专用于 RS485 通彳 t:RS 指令,用此指令可实现 DV 陈列 PL*所有遵循标准 RS-485 通信功能的设备

5、进行 485 方式的通信操作。2、与 RS 指令有关的 M 组件M112Q 用于保持已设定的通信协议。可在 PLCRUN 的瞬间(M1002时用 SETM1120 指令:LDM1002SETM1120在 PLCRUN 的瞬间,PLC 会据 D1120 内的设定资料作为当前的通信协议M1122 通信条件开关。 无论用户是要用 RS 指令发送资料或接收数据, 在 RS指令之前, 都要使 M1122 处于 ON 的状态, 否则 R 训旨令不执行。当 RS 指令执行完成后,PLC 将自动把 M1122 置为 OFF 状态,用户要在 RS 指令在下一次通信之前把 M1122 置为 ON 状态。M1123

6、RS 指令接收数据完毕标志。当 RS 指令接收资料完毕时,PLC 将把M1123 置为 ON 犬态, 用户可把此作为处理接收资料的入口, 处理完接收来的资料后,要实时把 M1123S 为 OFF 犬态,以保通信程序的正确性。M1161:通信位处理模式。OFF16 位;ON8 位M1126 通信位处理模式。OFF16 位;ON8 位3、通信协议参数的定义(D1120)D1120 中存放的数据用于定义 RS 指令在进行通信时所用到的基本参数。如用户要使用 9600,N,8,1 的参数,则 D1120 中的资料需为H81(0000000010000001)D1120 中的设定一定要与对方的设定通信参

7、数一致,否则通信将不能成功。注:为使 PLC 中的资料在通信过程中确保不丢失,建议用 8 位的资料位。4、通信格式的定义台达 DV 晾列 PLC 在通信的字符格式方面没有特别的规定,这样就有利于用户根据需要自由定义自己的通信字符格式。在本例系统中,因考虑到各 PLC 子系统离计算机较远,在各个电气柜中又有会产生干扰源的变频器,为确保资料在传送过程中的正确性,在字符格式中增加了校验字符(一个字节),以校验数据的正确性。在本例系统中,计算机向 PLC 发送的信息有 8 种(分为读数与写设定资料),PLC 又怎么识别计算机要 PLC 进行何种操作呢?据此在字符格式中增加了操作功能字符(一个字节),用

8、于使 PLC 识别计算机要 PLC 进行何种操作。在本例系统中,一个 RS485 子网中不只一台 PLC 要使 PLC 能识别计算机是否要与自己通信,在字符格式中还需要增加 PLC 站号字符(一个字节),用于使 PLC 识别计算机是否要与自己通信。据以上的要求,形成的通信字符格式为:PLC 站号+操作功能号+要传送白资料+校验字节四、PLC 中通信程序的实现程序说明:1、由于篇幅所限,实际应用中的程序有 3000 多步,在此只能列出简要的用于说明 RS485 通信的程序段;2、程序中 PLC 站号为 2 号, 当 PLC 确定由计算机传来的第一个字符为 2时,此程序段程序中数据处理才被执行;3

9、、0 号操作功能为从 PLC 中读取实时数据;1 号操作功能为向 PLC设定资料,PLC 把已设定进去(D536)的资料反传给计算机,以便计算机验正数据设定的成功与否;4、D254 为校验字节。六、计算机中通信程序的实现在计算机中用 MSCOMM 件实现对 COM3fCOM4 勺操作通信。与台达 DV 陈列 PLC 通信可用字符方式与二进制方式, 考虑到操作的方便性,本例子系统中用二进制 ASCII 方式,为解决对大于 255 的资料,在PLC 与计算机程序中要进行分解处理1、MSCOMM 性的定义通信口定义为 3,通信方式定义为二进制方式, 通信参数定义为与 PLC 中的一致 9600,N,

10、8,1,使用通信事件捕获与软中断方式。因 MSCOMM 件为在 Windows 下的标准控件,在此不再详细说明2、在计算机中接收与发送资料程序GlobalSendToPLCString_485(11)AsByteGlobalReadFromPLCString_485()AsByteGlobalReadFromPLCStringLenAsIntegerPublicSubDoCommPort(DoTypeAsInteger,PortNoTempAsInteger)用于串口的打开与关闭OnErrorGoToCOMMErrorCOMMOpenFlag(PortNoTemp)=FalseIfDoType

11、=1ThenIfFormMain.PLCComm(PortNoTemp).PortOpen=FalseThenFormMain.PLCComm(PortNoTemp).PortOpen=TrueEndIfElseIfFormMain.PLCComm(PortNoTemp).PortOpen=TrueThenFormMain.PLCComm(PortNoTemp).PortOpen=FalseEndIfEndIfOnErrorGoTo0ExitSubCOMMError:IfDoType=1ThenMsgBox”打开网络连接端口&Trim$(Str$(PortNoTemp)&”错误

12、!&Chr(13)&系统将无法实现连网监控或设定功能。,0,警告COMMOpenFlag(PortNoTemp)=TrueElseMsgBox关闭网络连接端口错误!,0,警告EndIfOnErrorGoTo0EndSubPrivateSubPLCComm_OnComm(IndexAsInteger)用于接收串口的字节ifPLCComm(Index).InBufferCount=13ThenReadFromPLCStringLen=FormMain.PLCComm(LinkCommNo).InBufferCount 位组长度ReadFromPLCString_485=FormMa

13、in.PLCComm(LinkCommNo).Input取字节FormMain.PLCComm(LinkCommNo).InBufferCount=0 清除字节DimErrorFlagAsIntegerErrorFlag=0ForSampleI=0To12 处理字节SampleString(SampleI)=ReadFromPLCString_485(SampleI)IfSampleI12ThenErrorFlag=ErrorFlag+SampleString(SampleI)NextSampleIErrorFlag=ErrorFlagMod256 算出校验字节IfErrorFlagSampleString(12)ThenExitSubPLCNoTemp=SampleString(0)得出 PLC 站号EndIfEndSubPublicSubSendToPLC_SelectPLC_485(PLCNoT

温馨提示

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

评论

0/150

提交评论