6ES7314-6EH04-0AB0性能参数
十 系统集成简介
本系统选用日本三菱的PLC为控制系统,下面对整个系统的集成简单介绍:
1 系统结构与控制原理简介
本系统由一个FX2N-128MR-001主体CPU,一个FX2N-48ER扩展模块,四个脉冲定位控制模块FX2N-1PG,一个人机界面(HMI),四个步进马达驱动模块组成。
HMI与PLC直接通过通讯口进行通讯,系统参数的设置以及手动时的各部件的操作均通过HMI进行;FX2N-48ER作为系统的自然扩展,自动识别,直接利用其I/O点;四个FX2N-1PG上与PLC以FROM/TO指令进行数据交换,下输出高速正(或反)脉冲对驱动模块进行控制,完成定位驱动控制。
具体参看如下《系统连接原理图》。
其它辅助控制按加工的工艺要求逻辑进行,不再详述。
2 系统集成配置
本系统实际要求输入点128点,输出点75点,在上面的配置中输出点数共84点,输入点数共84点,不足够的输入点由触摸屏软元件满足,整个系统配置的I/O总数如下:128+48+32(每个特殊模块点用8个I/O点),共208点,没有超过系统*大配置容量256点。
3 输入分配
输入主要分配给必要的行程、位置检测、系统工作方式选择、部分交流马达的驱动与控制等,对于手动方式操作的大多数输入选择(约占输入的80%)通过HMI软元件执行解决。
系统按完善配置的话,需要输入点数多达128点,但有的输入点数只在设备调试和维护过程中用得较多,在自动工作过程中运用较少,把系统不必要的输入点集成到HMI中用软元件来代替,这样一来减少系统输入模块的配置,二来节约大量接线、灯、按钮等费用,三来简化了电控柜操作面板(让120多个手动按钮集成在HMI上,还有部分工作状态指示),四方便系统参数的更改与设置,有利于调试、五提高了设备控制的档次和性能,对设备常见故障可以给帮助提示,整体费用也得到下降。
就本系统来说,事实上如果不用HMI,采用增加输入模块的方法解决输入不足,这样所花的费用更多。
4 输出分配
输出分配给四台三相异步电机和气缸(共62个气缸)驱动的电磁阀以及四台步进电机的辅助控制,还有少量辅助部份控制。
5 主要组件简介
l FX2N-128MR-001
FX2N可以是三菱公司目前FX系列PLC中性能**的系列机型之一,大量的软元件、丰富的应用指令以及内置大容量的程序存贮器,面对复杂的控制,也可以从容应对,其位执行指令达0.08μS,如此速度比SIEMENS的S7-200系列要快几倍,SIEMENS的S7-300也0.32μS而已,这足以证明FX2N的优越性,本人长期对各种品牌的PLC应用体会,FX2N系列是性价比不错的机型,在小型控制系统中,FX2N系列一直是本人的**之一。
l 脉冲输出模块FX2N-1PG
作为定位控制用的脉冲输出模块FX2N-1PG,可作单轴控制,*大输出可达100KPPS,针对定位控制的特点,该模块具有比较专业完善的控制参数设定,如定位目标跟踪、运转速度、爬行速度、减速速度等等各种参数,这些参数都可通过PLC的FROM/TO指令轻松设定。除高速的响应输出外,还准备了常用的输入控制,如正、反限位开关、STOP、DOG(近点信号)、PGO(零点信号)等等。
还内置了许多方便的软控制位,如返回原点、向前、向后等,对这些特定的功能,只要通过设置特定的缓冲单元已定义的位就可轻松实现。如通过如下简短程序,当按下返回原位按钮(本例用X10)或通过触摸屏内置位某软元件(本例用M66)即可驱动设备返回到原位,这对定位控制来说是非常方便而重要的。
LD M8000
TO K1 K25 K4M260 K1
LD X10
OR M66
OUT M266
十一 应用体会
本人在长期应用三菱公司的FX系列产品中,有如下几点体会:
1 功能强大
FX系列PLC配置了强大而完善的功能指令,尤其是FX2N系列PLC,按其功能分类共有程序流向、传送和比较、四则运算和逻辑运算、循环移位与移位、数据处理、高速处理、便利命令、外部机器I/O、外部机器SER、浮动、时钟运算、二进制循环码以及接点比较共13大类130条指令,如PID运算、浮点运算等,而其它品牌的PLC往往在高档系列中才配置有较完善的指令。在完成一些特别的功能时,用FX系列的PLC就可轻松配置完成,例如此系统的的配置,如果采用SIEMENS的PLC,至少要用S7-300系列的PLC才能完成此系统的控制功能。
2 ****
对于系统集成来说,价格不单是指单个自动元件的价格,更主要是完成整个系统的配置的费用,FX2N系列PLC有比较完善的各种配置供用户选择,并且有多种类多规格的特殊模块供用户选择,你总是可以在众多的配置中做出你*需要的合适的性价比较高的选择,以本例来说,如果采用SIEMENS的S7-300,则费用可能要高约50%左右。
3 系统配置完善
如果按I/O点数来分,FX2N系列共有6大基本单元,如果按输出类型分,则共有三大类共17种基本单元;扩展单元有12种,还兼容FXON系列的扩展模块,除还有各种模拟量模块、定位控制模块及其它通讯机能模块,基本上满足各种小型控制要求。
4 应用方便简单
如果你对多数厂家的PLC都有过应用经验的话,应该不难体会出FX系列的PLC应用非常简单,无论从选型还是硬件组态及软件编程,它避免了其它公司除产品型号外还有一大串定货号的烦琐要求;也没有过多的通讯协议,让人感到无所适从,是新手上路也会很快掌握其方便简单的应用。
十二 结束语
目前此设备处于试产阶段,生产周期约为3分钟,每周期生产钻饰品约260个,节约生产工人几十人,而生产产量和质量都得到大幅度的提高。
系统运行几个月来,平均每天工作约十六个小时,到目前为止,系统一直正常运行,说明此次控制系统的选择和集成是成功的。
十三 附设备实物照片
附设备实物照片两张!
图1:电控柜局部照片
图2:设备局部照片
可编程控制器(PLC)是集计算机技术、自动控制技术、通信技术为一体的新型自动控制装置。由于体积小、可靠性高以及组态灵活等优点,PLC在工业控制领域得到了广泛的应用。将PC机与可编程控制器组合起来,充分利用PC机强大的人机接口功能、丰富的应用软件和低廉的价格来共同实现管理、控制一体化成为一个新的发展趋势。本文重点介绍在bbbbbbs2000环境下如何利用VC来实现PC机与三菱PLC之间的串行通讯。
1 三菱PLC与计算机之间通信协议
FX2系列PLC与计算机之间的通信采用RS-232标准,其传输速率固定为9600bps,奇偶校验位采用偶校验。数据格式如表1所示。数据以帧为单位发送和接收。一个多字符帧由图1所示的五部分组成,其中和校验值是将命令码STX——ETX之间的字符的ASCII码(十六进制数)相加,取得所得和的*低二位数。STX和ETX分别表示该字符帧的起始标起和结束标志。
(1) 起始字元(STX):ASCII码的起始字元STX对应的16进制数位0x02。无论命令信息还是回应信息,它们的起始字元均为STX,接收方以此来判知传输资料的开始。
(2) 命令号码:为两位16进制数。所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等。在回应信息中,下位机会将上位机接收到的命令号码原原本本的随同其它信息一同发送给上位机。
(3) 元件首地址:对应要操作的元件的相应的地址。如从D123单元中读取数据时,要把它对应的地址:0x10F6发送给PLC。
(4) 元件个数:一次读取位元件或字元件的数量。
(5) 结束字元(ETX):ASCII码的结束字元ETX对应的16进制数为0x03。无论命令信息还是回应信息,它们的结束字元均为ETX,接收方以此来判知此次通讯已结束。
(6) 校验码(Checksum):校验码是将STX-ETX之间的ASCII字元的16进制数值以“LRC(LongitudinalRedundancyCheck)”法计算出1个Byte长度(两个16进制数值00-FFH)的校验码。当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正确。
FX2系列与计算机之间的通信是以主机发出的初始命令,PLC对其做出响应的方式进行通信的。共有0、1、7、8四种命令,上位机实现对PLC的读写和强行置位。通过ENQ、ACK和NAK,上位机协调与PLC的通信应答。
2 编程口操作命令类型
串行通信是计算机与其他机器之间进行通信的一种常用方法,在bbbbbbs操作系统中提供了实现各种串行通信的API函数。通过SC-09编程电缆或FX-232-BD通讯模块,可以将PC机和计算机串行通信口RS-232连接起来,可以实现PC机对PLC的RAM区数据进行读、写操作。根据PLC本身所具有的特性,计算机可对PLC进行以下4种类型的操作:
(1) 位元件或字元件状态读操作(CMD0);
(2) 位元件或字元件状态写操作(CMD1);
(3) 位元件强制ON操作(CMD7);
(4) 位元件强制OFF操作(CMD8)。
3 软件编程
(1) 串行通信实现方法
在进行以上四种操作之前要对串行通信口进行必要的初始化。本人采用了一个专门针对串行通信的CSerial类,并在Open函数中进行了的完善。它由MuMegaTechnologies公司提供的一个VisualC++类,我们只要理解CSerial类种的几个成员函数,就能很方便地实现串行通信了。以下是该类定义:
class CSerial
{
public:
CSerial();
~CSerial();
BOOL Open( int nPort , int nBaud,int nParity,intnByteSize,int nStopBits );
BOOL Close( void );
int ReadData( void *, int );
int SendData( const char *, int );
int ReadDataWaiting( void );
BOOL IsOpened( void ){ return( m_bOpened ); }
protected:
BOOL WriteCommByte( unsigned char );
HANDLE m_hIDComDev;
OVERLAPPED m_OverlappedRead, m_OverlappedWrite;
BOOL m_bOpened;
};
① Serial::Open这个成员函数打开通信端口。带五个参数,第一个是串口号,第二个参数是数据传输速率,第三个是数据效验方式,第四个是数据位数,第五个是数据停止位。
② Serial::Close函数关闭通信端口。
③ CSerial::SendData函数把数据从一个缓冲区写到串行端口。第一个参数是缓冲区指针,其中包含要被发送的资料;第二个参数是发送的字节数。
④ CSerial::ReadData函数从断口接收缓冲区读入数据。第一个参数是缓冲区指针,资料将被放入该缓冲区;第二个参数缓冲区的大小。
(2) 位元件或字元件状态读操作
操作对象元件:PLC内部的X、Y、M、S、T、C、D元件;命令格式如表1;在发送完上述命令格式代码后,就可以读取PLC响应信息了。响应信息格式如图2;