西门子6ES7317-2AK14-0AB0型号介绍
西门子6ES7317-2AK14-0AB0型号介绍
1 引言
随着城市经济的腾飞,停车难已到了刻不容缓的地步。在寸土寸金的市中心,特别是宾馆、商场、购物中心等车辆集中的地区,只有向空中、向地下发展,建造相当数量的立体停车库已是必不可少。上海市机械设备成套集团科贸公司是一家专门从事机械式立体停车库生产设计的公司,受文定天下苑徐房(集团)物业管理公司的委托,建造机械式两层升降横移立体停车设备。
2 总体方案设计
根据业主的要求,通过实地考察,总体方案设计如图1所示:远程小区监控中心具有系统管理员功能,可查看车库泊位状态(即车位板上是否停有车辆),修改存取车辆的密码,并实时监控下位控制器的运行状态;设计两个存取车辆出入口(即东出入口和西出入口),可加快车主存取车辆的速度,在两个出入口处各放置一台触摸屏,车主输入操作密码即可存取自己的车辆;下位机为PLC,通过信号的输入输出,检测存取的车辆和车位板是否到位、故障等,并控制电机运转,完成车辆的存取工作。
行程开关判别横移车位板或升降车位板是否到位,泊位开关判别车位板上是否停有车辆,光电开关判别存入的车辆是否超高、超长,并有安全保护作用,接触器用来直接控制电机的运动,指示灯可方便车主根据信息灯状态—前进、后退、运行、故障等,方便存取车辆。
3 系统工作原理
以7个车位为例说明从上层3号车位板存(取)车工作原理:车主输入正确的存(取)车密码;首先下层4、6号车位板同时向右横移,6号横移至空位,4号横移至6号位,然后3号车位板下降至下层4号位;车主即可把自己车辆驶上(驶出)3号车位板,存(取)车完成后,延时60s,3号车位板自动上升至原来的位置,然后4、6号车位板复位。
每个横移车位板对应一个行程开关,开关状态为“1”时表示此时车位板到位,为“0”时表示车位板未到位,根据行程开关的状态可判别出横移车位板是否到位。每个升降车位板对应一个上定位行程开关和一个下定位行程开关,根据行程开关的状态可判别升降车位板的位置。自动运行过程中,根据行程开关的状态控制接触器触点的通断,进而控制电机的运行和停止。
泊位开关用来检测车位板上是否停有车辆,其实质是一个镜面反射的光电开关,工作原理是:该车位板上停有车辆时,泊位开关处于“1”状态;车位板上无车辆时,泊位开关处于“0”状态,根据泊位开关的状态可知PLC对应输入点的状态,远程小区监控中心上位计算机根据松下电工的专用通讯协议可读出PLC寄存器状态,从而监控立体停车库的泊位状态、停车状况等。
4 控制系统硬件设计
控制系统的核心是下位控制器PLC,松下FP1的控制器因其较高的性价比受到用户的青睐。
(1) FP1具有计算机bbbb功能,可由上位计算机根据MEWTOCOL-COM通讯协议,直接通过编程口RS422读取FP1中的接点信息和其数据寄存器中的内容,实现数据采集,监视运行状态的功能;同时RS232可直接与操作界面触摸屏进行通讯。
(2) 扩展方便、灵活,可根据输入输出的点数的多少选择主机CPU单元和扩展单元。
(3) 控制单元和扩展单元输出功能强大:各个“COM”端均为独立的,可使用不同的电压;输出点额定控制能力强,为2A/250VAC或2A/30VDC,可直接控制接触器动作。
车库设置两个车辆出入口,主要目的是加快存取车辆的速度。系统配置时选用一个PLC,在东西出入口处各放置一台触摸屏,东出入口触摸屏和PLC距离约为 8m,所以直接通过RS232接口通讯;两个触摸屏之间的距离约为20m,选用RS485通讯接口。图3为其通讯接口协议接线图。
由于立体停车库领域的特殊性,对电机的要求很高,一般都采用三合一电机(即减速、制动、刹车为一体),本车库使用德国汉森电机,横移电机为0.25kW,升降电机为 2.2kW,规格为三相380V,通过接触器的通断直接控制电机的运行和停止,完全可以达到车位板的定位要求。
综合以上因素,根据I/O点数、输入输出信号特点、输出驱动能力、通讯等要求,选择FP1系列C72C继电器输出型PLC,扩展模块为继电器输出型E40(I 24/O 16),即可满足设计要求。
5 控制系统软件设计
本系统软件部分的中心任务是根据输入的存(取)车密码,对应的车位板运行到指定的位置。主要有四部分组成:(1)自动操作程序—根据车主输入的密码,对应的车位板运行,完成车辆的存取。(2)单步操作程序—按下按钮,执行一个车位板的完整动作。(3)手动操作程序—按钮按下时,车位板运动,直至车位板到位,否则停止,可方便维修、故障查找。(4)操作显示程序—在存(取)车过程中,应显示必要的提示信息,方便车主存(取)车;为方便维护人员,在系统故障时,应显示对应的故障代码。
所有实现上述功能的PLC软件程序采用步进结构,图4所示为软件流程图。
触摸屏的设计软件为 ADP3,要正确设置触摸屏的DIP开关和通讯参数,才能确保通讯的正常进行。东出入口的触摸屏为主站,通讯参数设置:人机界面站号为0,传输速率为 19200b/s,8位数据长、奇校验、1位停止位;与PLC连线所用的通讯端口为COM1,连线方式为“Multi-drop M aster”,共用寄存器区为DT200,长度为32,共用接点区为R200,长度为0;画面控制区地址为DT10,画面状态区地址为DT20;延迟画面启动时间为3s。西出入口的触摸屏为辅站,通讯参数设置:人机界面站号为1,传输速率为19200b/s,8位数据长、奇校验、1位停止位;连线方式为 “Multi-drop Slave”,共用寄存器区为DT200,长度为32,共用接点区为R200,长度为0;画面控制区地址为DT12,画面状态区地址为DT18;延迟画面启动时间为0s。按照以上的参数设置及通讯接口接线,才能保证系统通讯的正常。
6 FP1系统寄存器参数设置
在软件设计时,为了保证PLC与上位监控计算机和触摸屏通讯正常,一定要注意PLC系统寄存器的参数设置。
与上位计算机有关的系统寄存器配置:(1)编程口站号参数NO.410设置为K1;(2)编程口通讯格式参数NO.411设置为H0。
与操作界面触摸屏有关的系统寄存器配置:
(1)RS232C串口通讯方式参数NO.412设置为K1,表示RS232C串口用于计算机链接通讯;
(2) RS232C串口通讯格式参数NO.413设置为K1,表示RS232C串口通讯传输格式为8位数据长、奇校验、1位停止位、CR为结束符;
(3) RS232C串口波特率参数NO.414设置为K1,表示串口通讯波特率为19200b/s,同时应把PLC波特率选择开关设置为19200bps;
(4)RS232C串口站号参数NO.415设置为K1。
7 结束语
通过调试运行,整个停车设备的结构紧凑、设计合理、运行良好,充分发挥了FP1的高可靠性、强抗干扰性、调试方便等特点,特别是FP1的功能特点在停车设备中的应用具有推广价值,对同行业的机械式升降横移停车设备的设计具有借鉴意义。
1 引言
随着PLC应用范围的不断扩大,PLC与PC之间通信技术的应用需求越来越广泛。通过PLC的编程口进行通讯不仅可以减少系统的成本及复杂性,同时可以减少PLC方面软件的复杂程度和编程量。本文根据实际工程中的经验进行总结,介绍了利用VC++中MFC实现PC与松下FP0系列PLC编程口进行串行通信的程序设计基本方法。
2 PC与FP0 PLC之间的通信协议和接口
在一个规模较大的纺织工业控制系统中,常常有几十个、几百个甚至更多的测温和控制对象。即使速度很高的系统,也很难满足要求。为了降低危险,提高可靠性,必须将任务分散,而分散的设备需要通过一定的手段连接起来,其中数据通信和系统互连是该系统的关键技术之一。松下FP0系列PLC具有较强的通信功能,可以适合各种工业自动化网络的不同需要, 其中包括以太网协议及通用接口、H型链接通信系统(H-bbbb)、P型链接系统(OPTICAL bbbb)、W型链接系统(WIRE-bbbb)和C-NET链接系统,还有远程I/O通信系统(REMOTE I/O),它们通过RS-485、RS-232或专用网络插座在PLC-PLC、计算机与PLC之间进行通信。但是要利用这些系统协议,必须采用专用**通信单元,这势必增加系统的成本。为了节省开支,纺织工业系统可以直接采用松下电工*基础的专用通信协议-NEWTOCOL。
NEWTOCOL分为两部分:一是NEWTOCOL-COM,即关于计算机通信的协议;二是NEWTOCOL-DATA,即关于数据传输协议。
2.1 NEWTOCOL-COM的帧格式
(1) 命令发送帧
(2) 正确响应帧
img]周奉磊-b2.jpg border=0>
(3) 错误响应帧
img]周奉磊-b3.jpg border=0>
2.2 NEWTOCOL-DATA的帧格式
(1) 命令发送帧
img]周奉磊-b4.jpg border=0>
(2) 正确响应帧
img]周奉磊-b5.jpg border=0>
(3) 错误响应帧
img]周奉磊-b6.jpg border=0>
通过该协议可更加快捷地传送系统所需的数据,设置PLC所需的参数。FP0 PLC与上位机链接通信协议如图1所示:
图1 FP0 PLC 与上位机链接通信协议
3 通信程序设计
在PC机和松下FP0系列PLC进行串行通信时,由于PC与PLC之间的信息传送是通过PLC编程口实现的,采用的是FP0 PLC专用协议通信指令。因此,在PC编程方面需要严格的遵循PLC编程口通讯协议。具体实现介绍如下:
3.1 串口设备的打开
在Visual C++中,利用MFC CFile类来实现串行通讯。这种通信方式与访问磁盘普通文件没有太大不同。打开串口设备需作以下操作:
CFile file;
CFileException e
File.open(
portName, // example "com1",com2"
CFile::modeReadWrite,
&e);
3.2 串口设备的初始化
串行端口创建时,必须对其进行设置以匹配与其对话的设备。FP0系列PLC的波特率为固定的9600bps,奇偶校验采用奇校验,1位停止位,8位数据位。一般地,可用如下程序设置它们:
DCB dcb;
::GetCommState((HANDLE)file.m_hFile,&dcb);
dcb.BaudRate=9600;
dcb.StopBits=1;
dcb.ByteSize=8;
dcb.Parity=1;
::setCommState((HANDLE)file.m_hFile,&dcb);
为了更好的控制端口可以利用SetCommTimeouts()函数打开或关闭串口超时功能,具体程序如下:
COMMTIMEOUTS cto;
::GetCommTimeouts((HANDLE)file.m_hFile,&ct0);
cto.ReadIntervalTimeout=0;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=0;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
::SetCommTimeouts((HANDLE)file.m_hFile,&cto);
3.3 PC与FP0 PLC之间的通信实现
在FX2系列PLC与PC机的通信中,数据是以帧为单位发送和接收的。其中字符ENQ(0x05)、ACK(0x06)、
和NAK(0x15)作为单个字符,可以构成单字符帧。若通讯正常,则应答字符$;若通信有错,则应答字符!。其余的字符在发送和接收时必须用字符%和CR分别表示该字符帧的起始标志和结束标志,否则将构成帧错。一个多字符帧由%、地址码、站号、数据、和校验以及CR五部分组成,其中和校验值是其初值为0,然后从起始符开始与该帧报文中每一字节按位进行异或运算得到。
(1) 应用MFC CFile类实现对串口设备的读、写操作的代码
//读串口
char m_Readbuff[UINT n];
uint nByte=file.read(
&m_ReadBuff, //缓存储冲
UINT nCount //所读字节数
//写串口
char m_WriteBuff[UINT n];
file.Write(
&m_WriteBuff, //存储缓冲
UINT nCount //缩写字节数
);
(2) PC机实现与PLC通信的程序代码
char m_WriteBuff[10];
char m_ReadBuff[10];
UINT nByte=0;
m_WriteBuff[0]=0x05 //ENQ
//写串口
file.Write(
m_WriteBuff, //存储缓冲
//所读字节数
);
//读串口
nByte=file.Read(
m_ReadBuff, //存储缓冲
//所写字节数
);
switch (m_ReadBuff[0])
{
case : 0x24 //应答$,通信正常
//添加相关处理代码
break;
case : 0x21
//应答!,通讯故障
//添加相关处理代码
break;
}
3.4 PC对PLC内各软设备进行读、写操作
FP0系列PLC的所有开关量输入、输出以及各软设备对PC机都是透明的,只有当PLC的计时器和计数器的设定值采用常数时,以及文件寄存器内的数据,PC机不能对其进行读写。不论PLC处在“STOP”状态还是“RUN”状态,PC机都可以按1.1所列的命令对PLC进行读、写操作。这里仅给出PC机与PLC通信所用多字符帧的格式及简单示例,实际应用时只需将多字符帧中的字符ASCII码(十六进制)按顺序赋予相应的字符数组
m_WriteBuff,m_ReadBuff,即可实现对PLC的操作。
(1) 读操作
img]周奉磊-b7.jpg border=0>
(2) 写操作
微机对PLC软设备进行写操作的多字符帧的编制格式如下表所示:
img]周奉磊-b8.jpg border=0>
PLC接收到写操作多字符帧格式后,若接收到数据有效,则应答$(0x24),该字符帧如下表所示:
img]周奉磊-b9.jpg border=0>
若接收数据无效或和校验出错,则应答字符!(0X21),该字符帧如下表所示:
img]周奉磊-b10.jpg border=0>
3.5 关闭串口设备
PC机与PLC通信完毕后,PC机关闭一个已打开的串口设备只需如下一条语句即可完成。
File.Close();
4 应用实例
以上介绍了利用MFC实现PC与FX2系列PLC串行通讯的基本方法及其关键部分程序代码。上面的程序代码为基础,不仅可以编制用于以PLC为现场主控机的监控系统软件,而且可编制出微机与其他具有串行通信能力设备的串行通信程序。本人已成功使用VC5.0实现PLC与上位机之间的通信,并应用于青岛大学纺织服装学院开发的掉毛量测试仪。该测试仪控制系统采用PLC 控制步进电机方案,有效地提高了工作效率,使操作人员通过PC的显示可以监测并控制仪器的工作。兔毛织物掉毛量测试仪已可靠运行一年,实践证明它具有控制灵活、使用简单、功能扩充方便、抗干扰性能强的特点。没有出现任何通讯连接的问题。
PLC是按用户根据控制要求编写的程序进行工作的。程序的编制就是用一定的编程语言把控制任务描述出来。尽管各厂家PLC采用的语言不尽相同,但其程序的表达方式基本有四种,符号梯形图、指令表、功能图、**语言。绝大多数PLC采用梯形图和指令表,本书将以FP1—40机型为例详细介绍。梯形图前面课程已介绍过,所谓指令表,就是用英文名称的缩写字母来表达PLC各种功能的助记符。由指令构成的完成控制任务的指令组合就是指令表。每条指令一般由指令助记符和作用元件编号两部分组成。图4-1为PLC实现对三相异步电动机起/停控制的梯形图与指令表。
有关梯形图及指令表的输入方法将在第七章编程软件的使用、第八章应用实验中详细讲解。编程器的使用将在实验课上作扼要介绍。
FP1系列PLC具有丰富的指令系统,它的指令达190多条,大致分类如表所示。
表 FP1系列指令分类统计
分类 | 名称 | 指令条数 |
基本指令 | 基本顺序指令 | 19 |
功能指令 | 7 | |
控制指令 | 18 | |
条件比较指令 | 36 | |
**指令 | 数据传输指令 | 11 |
数据运算及比较指令 | 41 | |
数据转换指令 | 26 | |
数据位移指令 | 14 | |
位操作指令 | 6 | |
特殊功能指令 | 18 | |
总计 | 196 |