ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:72KB ,
资源ID:2083584      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2083584.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于串行通讯的PLC远程控制.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于串行通讯的PLC远程控制.DOC

1、基于串行通讯的 PLC 远程控制可编程控制器 PLC 的应用绝大部分都是通过编写梯形图的方式实现程序控制的,但对于智能低压开关系统来讲,其分、断的控制往往要求由主控操作室远程控制来完成。按传统的方法,主控室要对某一个开关柜进行操作,须先发一个控制命令,PLC 接收到该控制命令后,再由 PLC程序执行该命令,该段程序必须用梯形图或逻辑指令编程,当开关柜数目巨大或要求多路设备同时控制时,PLC 的程序编写就比较复杂,尤其是采用脉冲型输出控制而不是用电平保持型控制时更是如此。因为开关柜的分、合控制须两路继电器输出分别控制“分闸” 和“合闸” ,而不是由单路继电器保持输出控制,使继电器输出与开关柜分合

2、一致。考虑这些因素,本文采用串行通讯实现 PLC 的控制,PLC 本机无须任何梯形图或逻辑指令,这样不仅实现简单而且方便可靠。一、低压监控系统设计(一)系统设计要求依据用户的实际要求,智能低压开关柜不仅能在当地手动进行分、合,而且具有系统零位、时控和远方控制的功能,其控制回路的电气控制图如图 1 所示。图 1 中 SV 为转换开关,当 1、2通时,为当地时控方式;9、10 通时为手动方式;5、6 通时为远程控制。当开关柜工作在远方控制方式时,当 PLC 输出触点#107- #113 闭合时,KM 线圈加载得电,KM 常开触点闭合,并形成回路使 KM 线圈始终得电,此时 PLC 输出触点#107

3、-#113 释放,当 PLC 输出触点 #105-115 吸合时,KA 线圈得电,KA 常闭继电路断开,使 KM 线圈回路失电,KM 常开触点断开,当 KM 线圈常开触点断开后,PLC#1052115 输出触点释放,开关维持断开状态。图中#901-#903 作为 PLC 的输入触点。(二)设计方案简述本系统针对低压系统的实际要求设计,实现开关柜的远程控制。主站通过电力专用 modem 与远方子站 RTU 进行双向通讯,主站发出控制命令,子站接收主站控制命令并转发到 PLC,并将PLC 的执行结果及时反馈给主站,控制时间在 12s 完成。监控系统分为三级:主站、变电站当地子站、PLC 和仪表设备

4、。主站借助 GPS 时钟精确定时,操作员可将任何时候的停电和启动设置进主站,由主站自动发出控制命令,该监控系统极适合路灯及景观灯的控制。图 1 控制回路的电气控制原理图二、通讯协议及处理方法(一)主站与子站的通讯协议主站采用电力系统远动循环规约与子站进行通信,但远动循环规约中仅有主站对子站的单点遥控命令,为此主站端必须对 CDT 规约进行扩展,我们借用遥信报文的格式,将主站端需要控制的低压开关状态,用遥信报文下发到子站,为此仅需将下发的遥信报文中的开关状态内容分析出来,分别放置在 yk_road0、 yk_road1、yk_road2、yk_road3四个字节中,支持对 32 路低压断路器的控

5、制。报文由同步字、控制字和信息字三部分组成,其格式如下:同步字为 6 个字节:0dbh,09h,0dbh,09h,0dbh,09h;控制字为 6 个字节:控制字节、帧类别、帧长度、源站址、目的站址、CRC 校验;信息字为帧长度6 个字节,本文因为控制点数在 32 个以内,所以信息字仅为 6 个字节:功能码、1 到 8 组开关柜控制状态、9 到 16 组开关柜控制状态、17 到 24 组开关柜控制状态、备用开关柜控制状态、CRC 校验。整个控制报文 18 个字节,这样既符合 CDT 规约的通信格式,又不增加 RTU 的通信报文分析负担。在该规约处理中,关键为实时判断出同步字头,然后根据帧类别区别

6、遥控选择命令、遥控执行命令、遥控辙消命令、系统对时和成组开关控制命令,分析出遥控数据存放在yk_road0yk_road3中,并置相应标志,再由远动测量装置将命令进行分析转换发给PLC。实现该规约的分析方法 voidinterruptCntReach1()函数如下:voidinterruptCntReach1()/*串口 1 每收到一个字节中 断一次的中断处理程序*/ cntreach1+; /*每接收一个字节,中断 接收计数器加 1*/stat=sio_read(p1,data,1) ;/*从串口 1 缓冲区读入一 个字节数据放到 data0中*/if(ok1=0 )/*如未判断到同步字节,

7、以下分析同步 字头*/switch(tp1) case0:if (data0=0xd7)tp1+; break;case1:if (data0=0x09)tp1+;else tp1=0; break;case2:if (data0=0xd7)tp1+;else tp1=0; break;case3:if (data0=0x09)tp1+;else tp1=0; break;case4:if (data0=0xd7)tp1+;else tp1=0; break;case5:if (data0=0x09) ok1=1;cntreach1=0 ; else tp1=0; break;default:

8、break; if(ok1=1)&(cntreach1 、=0) )/*已判断到同步字头后,以下分析报文内容*/Rx_buf1cntreach1-1=data0;if(cntreach1=3 )LGn1=Rx_buf12;if(cntreach1= (LGn1*6+6 ) )step_flag1=1; /*置报文同步标志 */CODE1=Rx_buf11; /*帧类别*/switch(CODE1 )case0x61:/*遥控选择命令处理*/case0xc2:/* 遥控执行命令处理 */case0xb3:/*遥控辙消命令处理*/case0x7a:/* 系统对时,*/case0xf4:if (Rx

9、_buf16=0xf0)/*分析出遥控数 据,并置相应标志*/if(Rx_buf12=1)yk_road0=Rx_buf17;yk_road1=Rx_buf18;yk_road2=Rx_buf19;yk_road3=Rx_buf110;yk.road=1;yx1_state0=1 ; break;default:break;reset_point(1) ;/*复位各种标志的函数*/ sio_flush(p1,0) ; (二)子站与松下 PLC 的通信协议松下 PLC 通信协议 MEWTOCOL2COM 为厂家专门设计的协议,采用 ASCII 码的方式传送,用应答方式实现 PC 机与松下 Fp1

10、PLC 之间的通信。由子站端 RTU 发出/命令信息 0,FP1PLC 响应,其基本格式如图 2。其命令代码 Commandcode 由 23 个 ASCII 字符组成,共 26 种,主要有:RCS 为读一个触点数据;WCS 为写一个触点数据;RCP 为读多个触点数据;WCP 为写多个触点数据;RS 为读定时器和计数器的设定值;WS 为写定时器和计数器的设定值;RCC 为将多个触点数据以字方式读入;WCC 为将多个触点数据以字方式写入;因此,通过对这 26 种命令组合分析,可以完全构成由远程对 PLC 进行控制,而 PLC 本身无需编写任何梯形图。通过分析测试,例如对 PLC下发 ASCII

11、数据串“%01#RCCX00000001*xod”,共 19 个字节,其中 X 是输入数据类型,Y 是输出数据类型,数据串末尾是回车符,必须用xod 代替,其中报文可以不计算 BCH 校验码,用*代替,该报文实现了以字方式读 01 号 PLC 中的输入从 0000 到 0001 数据,共 32 路输入数据。PLC 收到该报文后,立即回 17 个字节的数据串,前 6 个数据为/%01#RC0,后 8 个数据为 2 个字的输入点数据,每个字数据用 4 个字节,每个字符可表示 4 位输入点的状态,设计了Read_fp1_input()函数实现报文分析转换方法。对 PLC 的输出控制用 WCC 命令实

12、现,其基本数据串格式为“%01#WCCY000000030000000000000000*/xod”,该报文实现了以字方式置 01 号 PLC 中的输出点从 0000 到 0003 数据,控制数据内容为 16 个字节,每个字符可表示 4 位输出点的状态,共64 路输出数据。因为每个低压开关柜需要“开”、 “断”2 路输出控制,实际此命令只可控制 32 路开关。为了系统可靠,低压开关设计为脉冲控制型,为此必须用通信命令来实现 PLC 输出触点的同时输出,延时一段后再对 PLC 进行求反输出控制。设计Write_fp1_output()函数实现了具体报文转换成输出数据下发给 PLC 的方法。Rea

13、d_fp1_input() /*读 FP1PLC 输入数据的 处理函数*/unsignedcharfp1_read19=/%01#RCCX00000001* *x0d0;intn;memcpy(SendBuffer,fp1_read ,19) ;receive_ok=0; termintrr=0;count=0;sio_putb(p6,SendBuffer,19) ;while(count4)&0x0f; else x&0x0f;if(x9 )x=x+-A。-10 ; elsex=x+0x30;return(x) ;Write_fp1_output()/*控制 FP1PLC 输出,并合成 冲的

14、处理函数*/unsignedcharfp1_write35=/%01#WCCY0000 00000000000000*x0d0;intn;memcpy(SendBuffer,fp1_write,35) ;receive_ok=0; termintrr=0; count=0;SendBuffer16=Hex_to_Asc(yk_road0 ,1) ;SendBuffer17=Hex_to_Asc(yk_road0 ,0) ;SendBuffer18=Hex_to_Asc(yk_road1 ,1) ;SendBuffer19=Hex_to_Asc(yk_road1 ,0) ;SendBuffer2

15、0=Hex_to_Asc(yk_road2 ,0) ;SendBuffer21=Hex_to_Asc(yk_road2 ,0) ;SendBuffer28=Hex_to_Asc(yk_road0 ,1) ;SendBuffer29=Hex_to_Asc(yk_road0 ,0) ;SendBuffer30=Hex_to_Asc(yk_road1 ,1) ;SendBuffer31=Hex_to_Asc(yk_road1 ,0) ;sio_putb(p6,SendBuffer,35) ;while(count30)memcpy(SendBuffer,fp1_write,35) ;receive_

16、ok=0; termintrr=0;sio_putb(p6,SendBuffer,35) ;count=40;sleep(1) ;Read_fp1_input() ;/*读 PLC 得触点状态数据*/yx_duiwei() ; /*遥信数据对位*/Send_yx() ; /*将遥信数据上送*/图 2 报文格式图(三)控制的实现我们为系统操作员在主站端设计了两种控制方式,第 1 种为手动遥控:在后台的图形界面中,点击进入相应的变电站,再进入路灯和景观灯所在的控制界面,界面中每一组路灯对应变电站的一个低压抽屉柜,操作员用鼠标选择路灯和景观灯的“开”、 “灭” 状态,再将所有的开灭状态组成字节数据,

17、用 CDT 报文下发给变电站的 RTU。RTU 收到路灯控制命令后,将报文解析和重组,用 MEWTOCOL2COM 通信协议将控制数据传送给 PLC。PLC 将按照系统操作员在后台的设置执行控制命令,RTU 将控制结果及时反馈给主站端,主站端将这一控制过程作为一条记录存入数据库,可以事后查询。第 2 种控制方式为时控:操作员用鼠标选择在年 月日时分或星期几时的路灯和景观灯的/开 0、/灭 0 状态,将这些数据存入数据库,当设定时间到达时系统自动发出这些数据,系统可以根据 RTU 的反馈信息确定控制是否成功,并可决定是否重发。因为对 PLC 的控制是在子站 RTU 完成的,为控制的实时性,我们采

18、用 C 语言编程实现了对PLC 的通信控制,确保 PLC 中无需编写任何梯形图逻辑。由于系统主站与子站之间的通信是基于十六进制数据的 CDT 规约,而 MEWTOCOL2COM 通信协议是基于 ASCII 码的数据通信,为此设计了两个函数用于基于 ASCII 字符数据的发送和接收。其中发送数据函数 Sio_putb() ,其使用格式见 Read_fp1_input()程序。另一个数据接收中断处理处理函数为本设计的关键,为方便和可靠,本文设计的中断触发信号为“串行口收到回车符(十六进制的 0dH) ”,确保 PLC每应答完一帧完整的报文,RTU 才进入中断处理,并在中断处理程序中完成报文数据的分

19、析,大大提高了快速性和可靠性。这种方法在基于 ASCII 字符的通信中极为有效。本文 RTU 有 6个串口,串口 1 为与主站的全双工通信通道,串口 6 为与 PLC 通信通道,用 sio_term_irq(p6,TermCome,0x0d) ;函数指明串口 6 只有收到回车符(0x0d)才响应中断 voidinterruptTerm2Come() ,其他的为变电站内的微机保护监控装置、发电机、直流电源屏、变压器通信通道,本文不做赘述。其中断函数初始化及中断处理程序参见文献。三、结语利用串行通信实现对 PLC 的远程控制,可以方便在主站后台端改变对底端设备的控制逻辑和运行方式,PLC 中无需编写任何梯形图程序,这在设备远程控制中有重要意义。该项目 2004 年在厦门海沧大桥多个变电站正式投运,达到了设计要求,实现了全桥低压设备的远方控制。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。