西门子6ES7232-0HB22-0XA8方法说明 1引言 塑排机是这样一种机器:将同一种规格的零散的钉子,倒至震动的圆盘中,使钉子整齐地排列在圆盘边上的卡槽上,同时转动圆盘,通过皮带将整齐的钉子传送到塑料封装机构,出来后再经过定长切割,终成为可供打钉枪使用的排钉。 PLC作为核心控制器,连接着光电开关,限位开关,电机启停开关,切刀等,控制着塑排机的动作,使其高速准确的运转。配合文本显示器,显示当前生产状态,更可方便地设定不同规格钉子的每排个数,以及各个动作的时间参数等。 2.实例 使用设备:PLC:永宏FBs-20MA 文本显示器:ThingetOP320-A 永宏FBs-20MA主机具有12点DI,8点DO,自带1个RS-232通讯口,用于程序下载或与文本显示器通讯,有着5年保固的可靠品质和中低端的价格,完全适合塑排机的系统解决方案。 信捷的OP320-A文本显示器支持永宏通讯协议,经济而实用,足以符合塑排机的要求。 I/O配置表 3.工艺流程 通过震动盘上的震动电机和吹气阀把散钉整理到轨道上;当轨道满钉时候,震动电机和吹气阀停止工作,当轨道没满钉时(检测到缺钉),震动电机和吹气阀又重新开始工作。钉子进入轨道后,随着主电机运行,钉盘把轨道上的钉子吸到塑料封装机构,连续成排的送出。 加工好以后每排的钉子个数是由文本显示器设置的,随着电机传动,当每次还相差5个钉子时,电机就减速,经过一定时间后,刹车,下刀切断;切刀复位后,传送电机重新启动。 系统主要由以下几部分组成: ? 送料部分:包括震动漏斗,振动盘,传送轨道,负责塑料封装时钉子的供给 ? 封装部分:系统的核心部分,完成由散钉到排定的加工过程 ? 成品部分:主要是定长裁切,包装 ? 显示部分:文本显示器显示当前速度,产量等信息,以及个环节的参数设定 运行监控部分:显示每分钟的产出钉子个数,累计产量(可人工清零) 参数设定部分:可对每排钉子个数,减速时间,切刀延时时间,斗振开关时间,盘振开关时间等进行设定,针对不同的规格可快速的修改参数 画面1 画面2 4 PLC控制系统的优点 塑排机设备选用永宏FBs-PLC,较大程度地提高了系统的可靠性,更好地满足了用户的需求。本系统有以下优点: 可靠性高 本系统的控制核心是FATEK的FBs-PLC,能够在恶劣的环境中长期、可靠、无故障地运行,接线简单,维护方便,隔离性好,抗腐蚀能力强,能够适应较宽的温度变化范围,平均无故障时间间隔(MTBF)大于15年。 功能强大 FATEK的FBs系列PLC有着功能强大的编程软件,丰富的窗口界面,使得复杂的指令变得直观、易懂、易用,并支持多种编程语言:梯形图(LD)、指令表(IL)、功能块图(FBD)、顺序功能图(SFC),支持多达362条功能指令。自主研发的SoC芯片,集成更精密,速度更快,功耗更低,可靠性更强,可实现复杂控制的高速处理,采用闪存来存储用户程序,保证保护用户程序不被擦掉。 5 结束语 以PLC为控制核心的塑排机,利用PLC的高速运算处理功能,实现对钉子焊接、排钉的计数,完成排钉的生产,高速度可达 1600 粒 / 分钟(平均时速 1000-1200 粒 / 分钟),其性能在国内处于地位。配合文本显示器,操作简便、直观。不仅提高了系统的抗干扰能力,提高加工速度,并且有效的避免了误操作的发生,经济效益十分可观。厂家认为该设备具有良好的市场前景。用VC实现PC机与永宏PLC的通讯图片:图片:图片:图片:1 引言近年来,随着大规模集成电路的发展,可编程控制器得到了迅速的发展,并广泛应用于各种领域中。由于可编程控制器具有自身的通讯端口和通信协议,这就使得工业现场的实时监控和控制成为可能。所以在实际的运用中,常常采用PLC作为下位控制机实现整个过程的自动控制。而微机在数据处理及人机界面方面有得天独厚的优势,因此采用微机为上位机来进行数据的显示、控制参数的修改及过程的控制,这样就不得不解决上位管理机与下位控制机之间的通讯问题。由于串行通讯具有线路简单、应用灵活、可靠性高等优点,并且普通微机上均都带有串口,便于实现,所以微机与PLC之间常采用串行异步通讯。VC具有面向对象的设计方法、简单方便的串行通讯和实用性强等优点,无需借用其他语言就可以开发出的控制系统通讯软件。本文重点就是介绍在bbbbbbs98环境下如何利用VC来实现PC机与永宏PLC之间的串行通讯。并以实际控制系统“半自动化灯检机”为例加以说明。2 控制系统简介半自动化灯检机系统的主要工艺流程:供瓶机供瓶→进瓶输送带送瓶→气缸放瓶→主传动履带式置瓶棍移送瓶→进入高速旋转工位旋瓶→进入低速旋转工位慢速旋瓶(同时也就进入灯检工位)→至出瓶输送带送瓶→进入剔除工位分瓶(由电磁阀来控制气缸动作)。下位机主要采用永宏PLC完成现场的状态检测与控制。上位机则用一般的微机,通过RS-232与PLC通信接受现场状态的显示并加以控制生产过程。电机的运转通过PLC控制,而电机的升降速则由变频器调节。因此本系统软件需要完成的主要任务是:从PLC,变频器循环接受现场的状态,并根据不同的状态控制变频器及电机的运转。主要的界面有:监控画面,密码设置,参数设置和报警画面等。其中监控画面设有:操作按钮,如停止,启动及产品合格数的实时显示。画面中的每一个按钮或状态显示都需要上位机与下位机的通信来完成。3 永宏PLC的通讯格式整个通讯采用上位机主动发送和接收的方式,PLC内部不需要特定的梯形图编程来做下位机通讯程序。3.1 通讯格式计算机与永宏FB系列PLC通讯必须遵从FB-PLC通讯协议。无论是上位机发出的命令信息格式还是下位机发出的回应信息格式均可分为6个资料位,如图1所示。(1) 起始字元(STX):ASCII码的起始字元STX对应的16进制数为02H。无论命令信息还是回应信息,它们的起始字元均为STX,接收方以此来判知传输资料的开始。(2) 从机站号:为两位16进制数。FB-PLC的站号是什么,这个值就是多少。因为FB-PLC的站号可以为1-255,所以这个值的范围为01H-FFH。(3) 命令号码:为两位16进制数。所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等等。在回应信息中,下位机会将从上位机接收到的命令号码原原本本的随同其它信息一同发送给上位机。(4) 本文资料:可为0(无本文资料)-500个ASCII字元。在命令信息中,此信息用于指定命令所要运作或存取的对象及要写入的数值。如果通讯正确,那么在回应信息中此栏为0(30H)和从上位机接收到的本文资料;如果通讯异常,那么为错误码。(5) 校验码(Checksum):校验码是将1-4各栏的所有ASCII字元的16进制数值以“LRC(Longitudinal Redundancy Check)”法计算出1个Byte长度(两个16进制数值00-FFH)的校验码。当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正。(6) 结束字元(ETX):ASCII码的结束字元ETX对应的16进制数为03H。无论命令信息还是回应信息,他们的结束字元均为ETX,接收方以此来判知此次通讯已结束。3.2 通讯命令永宏系列PLC有多种命令字,常用的几种描述如附表所示。例如,上位机要读取PLC内部继电器M1和M2的状态,则上位机发送的命令字符串格式为:起始符(02h)+站号(01)+命令字(44)+个数(02)+起始地址(0001)+校验码(3B)+结束符相应下位机响应的字符串为:起始符(02h)+站号(01)+命令字(44)+错误码(0)+M0,M1状态(10)+校验码(5C)+结束符若要对字元件进行写操作,那么命令码改为47。表明该指令要向PLC内部寄存器写入数据,同时要给出写入的数据个数、开始寄存器和数据内容。校验和在信息帧的尾部,用来判断传输的正确与否。当数据从信息源出发,由于信道总是有一定的噪声存在,在信号达到信宿之前会与噪声发生叠加,使接收端收到的二进制数位和发送端实际发送的二进制数位不一致,因而产生差错。进行差错检验的方法很多,常用的有奇偶校验码,水平垂直冗余校验LRC,目前广泛使用的是LRC校验码,它可以查出99%以上18位或更长的突出错误,因而在计算机与PLC进行点对点的短程通讯时,采用这种校验方法出错的几率较小。PLC接收到计算机发送的命令后,如果没有错误,PLC会发出确认码“0”;若有错误,PLC会发出错误代码“1”。4 软件编程软件编程采用微软的VC++6.0作为开发工具。系统主监控画面要求不断扫描下位机的信号的通断状态,以及读取PLC的内部存取单元加以显示。此外手动按钮可以直接控制,由此主程序结构流程图如图2所示。为了确保通信的成功,在PC机和永宏PLC之间开始数据传送前,常采用握手通讯的方法,即PC机发送特征字符,下位机接收并回送同一特征字符,由PC机进行检测正确后开始数据传送,以保证串行通讯数据的可靠。此外在通讯过程中,常因某些原因不能保证每次通讯成功,遇到这种情况,不能简单地宣布通讯失败,本程序设置了通讯重复次数计数器,只有在规定次数后握手通讯仍未完成时,才宣布通讯失败,从而大大提高了通讯的成功率和系统的容错能力。另外,程序中应用定时器对通讯时间加以限制,以免发生死锁情况。定时器的打开和关闭由程序进行控制。握手通讯成功后,设置握手连接成功标志位,这样,PC机和永宏PLC之间就可以开始数据传送。握手通讯程序如下:void CSCommPlcDlg::onSCommStart(){ m_Mscomm.SetCommPort(1); file://选择com1m_Mscomm.SetPortOpen(TRUE); file://打开串口m_Mscomm.SetSettings("9600,e,7,1");file://波特率9600,偶校验,7个数据位,1个停止位m_Mscomm.SetbbbbbMode(1);file://1:表示以二进制方式检取数据m_Mscomm.SetRThreshold(1); file://参数1表示每 file://当收到一只字符时引发一个接收数据的OnComm事件m_Mscomm.SetbbbbbLen(0); file://设置当前接收区 file://数据长度为0Cbbbbbb SendStr="";//设置要发送的字符串SendStr+=0x02;SendStr+="014EABCDEFGB8";SendStr+=0x03;m_Mscomm.SetOutput(COleVariant(SendStr));file://发送数据char sendcount=0;while(m_Mscomm.GetInBufferCount==0){ sendcount+=1; if(sendcount0){ Data=m_Mscomm.Getbbbbb(); RecStr=(char *)(unsigned char *)Data.parray->pvData; if(strcmp(SendStr,RecStr)==0) { bbbbSuccess=1; file://设置连接成功标志 m_Timer=SetTimer(1,1000,NULL); file://开启定时器 }}}4.1 实时数据监控的实现在本系统的主监控画面上,如图3所示。要求实时监控现实合格产品数。在下位机PLC程序中,每当合格产品经过特定传动待时,光电开关便感应信号,PLC对此信号计数,存放于一内存单元。上位机就要定时不断读取此单元内容显示。