PLC串口及红外控制装置设计 doc.docx

上传人:b****2 文档编号:560286 上传时间:2023-04-29 格式:DOCX 页数:14 大小:226.67KB
下载 相关 举报
PLC串口及红外控制装置设计 doc.docx_第1页
第1页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第2页
第2页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第3页
第3页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第4页
第4页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第5页
第5页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第6页
第6页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第7页
第7页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第8页
第8页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第9页
第9页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第10页
第10页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第11页
第11页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第12页
第12页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第13页
第13页 / 共14页
PLC串口及红外控制装置设计 doc.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PLC串口及红外控制装置设计 doc.docx

《PLC串口及红外控制装置设计 doc.docx》由会员分享,可在线阅读,更多相关《PLC串口及红外控制装置设计 doc.docx(14页珍藏版)》请在冰点文库上搜索。

PLC串口及红外控制装置设计 doc.docx

PLC串口及红外控制装置设计doc

PLC串口及红外控制装置设计

2008-10-2915:

19:

59【文章字体:

大 中 小】推荐收藏打印

摘要:

随着自动化技术的不断发展,作为工业控制的核心设备PLC这几年得到了快速发展和广泛运用。

PLC的接口也各种各样,而多数PLC都具有RS232接口,一般连接一些触摸屏,作为人机接口。

本文主要介绍一款基于新华龙单片机开发的RS232接口装置,可以连接PLC作为人机界面,该装置还配有红外接收功能,可实现一定距离无线遥控PLC。

关键词:

新华龙单片机,人机接口,红外遥控

Abstract:

Withthedevelopmentofautomationtechnology……

Keywords:

NewDragonmicroprocessor,Humanmachineinterface,infraredremotecontrol

1.引言

      HMI、SCADA作为PLC的主要人机接口设备,具有外观简洁,可靠性高,功能强大,用户界面友好,程序二次开发简单等优点,并向着网络化、智能化方向不断发展。

而在一些特殊情况下,比如数据安全要求高,控制空间小的场合,就较难实现。

基于单片机开发的PLC串口装置,凭借单片机优良的数据处理能力和低廉的价格有着一定的应用范围。

本文通过运用新华龙的C8051F33X系列的单片机开发了一款可编程RS232接口控制面板,本文主要介绍其电路设计和基本控制原理。

2.控制面板的控制方案

控制面板的外型如图2-1所示,具体功能键可参阅注释

图2-1

*注:

RS232C口---串口通讯口;

JTAG口---程序下载口;

红外接收头---可接受红外信号源;

电源灯---接上电源后点亮;

通讯灯---通讯正常情况下闪烁;

蜂鸣器---每次按下按钮后发出“嘀“声,并在有故障发生时连续报警;

复位按钮---可复位单片机;

故障清除键---清除故障代码;

模式选择键---可切换自动,手动,检修模式;

正,反转键---在手动和检修模式时,可点动控制对应控制号的电机正反转;

0-9---输入最多两位数的控制号;

确定键---确定并发送信号键;

删除键---删除所显示的控制号;

控制号LED显示灯---显示两位控制号;

故障代码LED显示灯---显示两位故障代码;

自动、手动和检修灯---显示当前控制模式;

预留灯---预留;

2.1面板控制原理

该面板可以运用于皮带运输系统、自动车库系统、存储系统等作为操作面板。

用户可以根据需要切换各种模式。

在自动模式时,可通过按钮选择控制号(控制号可以理解为控制电机号),并按确定键将信号发送给PLC;在手动和检修模式时,选择控制号并按下确定键后,可通过正反转按钮点动控制相应控制号的电机正反转。

PLC定时发送信号给控制面板,为用户提供各种信息,当有故障发生时,故障蜂鸣器报警并显示故障代码,待故障排除后,通过清除故障键清除故障代码。

在自动模式下,可通过红外发生器(本次设计没有自行研发红外发生器,而是采用标准的电视遥控器作为红外发生器。

)发射红外信号来选择控制号,控制面板上的控制号LED灯会跟随变化,按确定键(可自定义遥控器上的一个键为确定键)发送给PLC控制器。

2.2通讯信号说明

本次设计中的通讯信号涉及两种信号:

单片机与PLC的通讯信号和红外发射器(这里为电视遥控器)与单片机的通讯信号

单片机与PLC的通讯信号是双向的,分发送和接受信号。

发送信号有两个字节。

前8位包含控制模式、正反转和清除故障信号的信息,后8位包含控制号的信息;接受信号也是两个字节,前8位包含控制模式及控制号反馈信息,后8位包含故障代码信息。

红外发射器与单片机的信号为单向信号,只有发送信号。

标准的红外线发送信号为32位二进制码,即两个字。

第一个字为用户识别码(能区别不同设备,防止不同机种遥控码互相干扰),第二个字为用户信息码。

并且每一个字的第一个字节和第二个字节互为反码。

在按下电视遥控器按键后,其发射头会连续周期性地发出32位二进制码的信号。

2.3PCB面板电路图

图2-2

图2-2是控制面板的电路原理图,本次设计采用的芯片为新华龙的C8051330D单片机,并采用周立功单片机发展有限公司的ZLG7289B数码管显示驱动及键盘扫描管理芯片。

图2-3

单片机的时钟脉冲由外部晶震提供,为12MHz,如图2-3。

单片机的UART0(I/O口P0.4和P0.5)连接串口RS232。

10针接口为JTAG程序下载口,并配有硬件复位电路。

蜂鸣器由I/O口P0.1控制。

I/O口P0.0(SPI总线片选)P0.1(SPI数据信息)P0.6(SPI总线时钟信号),P0.7(键盘输入中断信号)与数码管显示驱动及键盘扫描管理芯片ZLG7289B实现通讯,如图2-4。

ZLG7289B的工作原理可参考相关资料。

图2-4

红外线接收头如图2-5所示,两个接头为电源5V直流电压街头,另一个接头为信号接头与I/O口P0.7连接。

单片机通过PCA计数/计时器捕捉电平信号。

图2-5图2-6

2.4PCB面板实物图

图2-6为PCB控制面板实物,大小为100x180mm.该装置仍处于研发阶段,故没有封装。

在其正常工作时,需配有+15V直流电压,面板需被固定起来,切误拿在手上防止其电路短路。

3.控制程序软件设计

新华龙C8051F33X系列的单片机可通过JTAG口连接PC打印机口直接下载程序。

U-EC5仿真器可接入JTAG口提供在线模拟仿真。

美国KeilSoftware研发的KEILuvision3是最新的51系列兼容单片机C语言软件开发系统,具有友好的操作界面,并且程序有良好的可读性,被广大电子工程师所使用。

本次程序设计采用其集成开发环境。

不同的控制工艺有着不同的控制逻辑,在这里我们着重讨论通讯部分的程序编写,对其他功能逻辑不做过多讲解。

3.1串口数据处理程序

C8051330D单片机芯片的UART0是一个异步、全双工串口,UART0具有增强的波特率发生器电路,有多个时钟源可用于产生标准波特率,本次设计我们采用的波特率为9600。

UART提供两种方式的标准8051串行口,8位串行口和9位串行口。

我们采用的是前者。

在8位UART方式中,每个数据字节共使用10位:

一个起始位、8个数据位(LSB在先)和一个停止位。

数据从TX0引脚发送,在RX0引脚接收。

在接收时,8个数据位存入SBUF0,停止位进入RB80(SCON0.2)。

当软件向SBUF0寄存器写入一个字节时开始数据发送。

在发送结束时(停止位开始)发送中断标志TI0(SCON0.1)被置‘1’。

在接收允许位REN0(SCON0.4)被置‘1’后,数据接收可以在任何时刻开始。

收到停止位后,如果满足下述条件则数据字节将被装入到接收寄存器SBUF0:

RI0必须为逻辑‘0’;如果MCE0为逻辑‘1’,则停止位必须为‘1’。

在发生接收数据溢出的情况下,先接收到的8位数据被锁存到SBUF0,而后面的溢出数据被丢弃。

如果这些条件满足,则8位数据被存入SBUF0,停止位被存入RB80,RI0标志被置位。

如果这些条件不满足,则不装入SBUF0和RB80,RI0标志也不会被置‘1’。

如果中断被允许,在TI0或RI0置位时将产生一个中断。

具体的程序如下:

*************串口数据处理中断程序************************************

voidUART_ISR(void)interrupt4

{

if(TI0)//当一个字节发送成功后,TI0被置位

{

TI0=0;//复位TI0

if(sendtime==first)//发送数据一共有两个字节,如果发送了第一个字节,需再发送第二个字节

{

sendtime=second;

SBUF0=senddata[1];//将待传送的数据放入串行数据缓冲器SBUF0

}

}

if(RI0)//有数据传送过来时,RI0置位

{

RI0=0;//复位RI0.

DATA=SBUF0;//从串行数据缓冲器SBUF0读取数据

if((DATA&0x80)==0x80)//传送一共有两个字节,判断当前传送的数据是不是第一个字节

{

readdata[0]=DATA;

receivetime=second;//为接受第二个字节做准备

}

if(receivetime==second)//接收第二个字节

{

if((DATA&0x80)==0x80)//判断当前传送的数据是不是第二个字节

{

readdata[1]=DATA;

receivetime=first;//为下次接收第一个字节做准备

display_errornumber();//显示故障代码

}

}

}

}

3.2红外线信号处理程序

标准的遥控编码采用脉宽调制的串行码,本次设计使用的红外发生器是一个万能电视遥控器,通过示波器测试,得到如下的特征属性,如图3-1,以脉宽为0.56ms,间隔为1.125ms的脉宽信号为0;以脉宽为0.56ms,间隔为2.25ms的为1。

一个完整的信号为32位二进制码,当按下按钮后,连续周期性发出同一种32位二进制码。

 图3-1

通过红外接收头单片机接收信号,当I/O口P0.7捕捉第一个电平信号时,PCA计时器捕捉该电平的脉宽,并触发CCF0传入中断程序,根据脉宽长度来判断输入的位是0或者1,并清除中断标志CCF0准备接收下一个位。

直到接收完32位编码后,再根据接收到的数据判断控制号并通过LED灯显示出来,如果接收的信号是确定信号,则将控制号传送给PLC.具体程序如下:

*************红外线信号中断程序************************************

voidPCA_ISR(void)interrupt11

{

unsignedcharred_headh,red_headl,redh,redl,i;

if(CCF0)

{

CCF0=0;//清除中断标志位

PCA0L=0;

PCA0H=0;

red_time=(unsignedint)PCA0CPH0*256+PCA0CPL0;//读取捕捉到低电平的脉宽长度

if(red_time>15000)//32位编码信号接收完成后

{

redl=(unsignedchar)redVALUE&0xff;//读取第一个字节

redh=(unsignedchar)(redVALUE>>8)&0xff;//读取第二个字节

red_headl=(unsignedchar)(redVALUE>>16)&0xff;//读取第三个字节

red_headh=(unsignedchar)(redVALUE>>24)&0xff;//读取第四个字节

if(choose==auto&&redh==~redl&&red_headl==~red_headh&&red_headh==0x02)

//如果在自动模式下,并且信号正确识别,则开始判断接收信号

{switch(redh)

{

case0:

disp_value[i]=0;//如果按下数字按钮0的话,则接收为0

disp_flag=1;//LED显示标志位置位

break;

case0x80:

disp_value[i]=1;//如果按下数字按钮1的话,则接收为1

disp_flag=1;

break;

case0x40:

disp_value[i]=2;//如果按下数字按钮2的话,则接收为2

disp_flag=1;

break;

case0xc0:

disp_value[i]=3;//如果按下数字按钮3的话,则接收为3

disp_flag=1;

break;

case0x20:

disp_value[i]=4;//如果按下数字按钮4的话,则接收为4

disp_flag=1;

break;

case0xa0:

disp_value[i]=5;//如果按下数字按钮5的话,则接收为5

disp_flag=1;

break;

case0x60:

disp_value[i]=6;//如果按下数字按钮6的话,则接收为6

disp_flag=1;

break;

case0xe0:

disp_value[i]=7;//如果按下数字按钮7的话,则接收为7

disp_flag=1;

break;

case0x10:

disp_value[i]=8;//如果按下数字按钮8的话,则接收为8

disp_flag=1;

break;

case0x90:

disp_value[i]=9;//如果按下数字按钮9的话,则接收为9

disp_flag=1;

break;

case0x3A:

//如果按下确定键的话,则将接收的数据传送到PLC

control_num=(unsignedchar)(disp_value[0]*10+disp_value[1]);

Ti=0;//清除发送中断标志位。

为发送数据做准备

sendtime=first;//为发送数据做准备

SBUF0=control_num;//发送数据

break;

}

i++;//循环改变个位,十位的数值

if(i>1)i=0;

}

redVALUE=0;//清除变量

redh=0;

redl=0;

red_headl=0;

red_headh=0;

}

elseif(red_time>2000)//如果脉宽大于2ms,则表示读到一个1,并左移一位

{

redVALUE=(redVALUE<<1)+1;

}

elseif(red_time>1000)//如果脉宽在1ms~2ms之间,则读到一位0,并左移一位

{

redVALUE=(redVALUE<<1)+0;

}

}

if(CF)//如果有溢出,清除溢出标志

{

CF=0;

}

}

3.3主程序

主程序的控制逻辑是,先初始化设置,包括晶震源及所有端口属性,使能所有中断源。

当有键按下的话,转入按键中断处理程序,显示和发送数据给PLC,当有接受到红外信号时,转入红外接收中断处理程序,显示和发送数据给PLC,PLC定时发送数据给单片机以显示故障及其他信息,当有信号从PLC发出时,转入串口通讯中断处理程序接受数据。

程序如下:

voidmain(void)

{

Init_Device();//端口初始化

var_init();//数值初始化

zlg7289_init();//LED显示初始化

IE|=0x80;//使能中断源

PCA0CN|=0x40;//使能PCA中断

SCON0|=0x10;//设置UART0边沿出发

while

(1)

{

if(disp_flag==1)

{

display_controlnumber();//刷新控制号显示

}

if(key_pressed!

=0)//有键按下时

key_process(key_value);//转入按键处理程序

}

}

*住:

key_process():

这个函数的功能是显示数据,并将数据处理后传送给PLC

限于篇幅,这里省去了端口初始化程序,ZLg7289初始化程序,其他中断程序,键盘输入程序,LED显示程序,通讯灯的功能程序,点动控制功能程序等等。

本节主要是为了向读者阐述如何实现PCB控制面板的通讯功能,其他程序可参阅相关资料。

4.PLC调试程序

 

图4-1

为了检测PCB控制面板的功能,需要编写PLC上位机程序调试。

这里我们选用了omron的C200HPLC。

不同的PLC的RS232串口接线是不一样,如图4-1提供了C200系列PLC与该控制面板的串口接线图。

设置PLC的串口属性为:

8位数据,一个起始位,一个停止位,无奇偶校验位;波特率为9600。

图4-2是PLC的通讯部分程序。

当定时器T000定时时间到,如果发送准备位为真时,将DM50、DM51的2个字节的数据发送;当接收准备位为真时,接受2个字节的数据至DM00、DM01。

篇幅有限,这里不对信号的具体处理程序作说明。

*注:

发送准备位和接受准备位是系统变量,如有需要可查阅相关资料

图4-2

5.结束语

       串口及红外控制面板基本实现了与PLC的通讯功能,而且具有操作简单,运用灵活等功能。

在一些显示要求高的场合,比如动画显示,我们可以将LED换成LCD液晶模块。

红外接收功能提出了一个很好的控制思路,运用红外技术实现人机通讯。

但是在调试过程中我们也发现了红外控制存在着控制距离有限,受干扰大,信号安全低,传送数据量小等弱点。

我们可以试着改进接收方式,采用无线接受装置,或者蓝牙接受装置,甚至手机信号接受器,将手机作为控制PLC的一个窗口。

这些新技术的研发必定随着工业控制技术的不断发展,给我们更广阔的想象空间。

参考文献

[1]潘琢金《C8051F330/1混合信号ISPFLASH微控制器数据手册》2003/12

[2]周立功单片机ZLG7289串行接口LED数码管及键盘管理器件数据手册

[3]新华龙电子有限公司《U-EC5操作指南》

[4]陈晓平李长杰《Protel99SE-电子线路CAD》东南大学出版社2005年7月第一版

[5]王卫兵高俊山《可编程序控制器原理及应用》机械工业出版社2005年4月第二版

[6]小小红外遥控系统原理及单片机解码实例2008/4/20

读过本文章的人也读过:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2