前言:西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商
6ES7211-0AA23-0XB0参数介绍1.引 言 当今,在自动化的工业生产中,变频控制往往与计算机远程控制相联系在一起,从而实现电机的远程变频控制。可编程序控制器系统不仅可作为单一的机电控制设备,而且作为通用的自动控制设备,也被大量地用于过程工业的自动控制。欧姆龙新推出的可编程控制器SYSMAC CP1H,具有“高度扩张性”的端子台型一体化[1]。与以往产品CPM2A 40 点输入输出型为相同尺寸,但处理速度可达到约10倍的性能。本课题通过控制机(即为PLC)设定比例运行参数,然后控制机通过D/A转换模件发出控制变频调速器的指令,使变频调速器带动振动磨电机按输入的速度和时间运转。基于OMRON PLC的链接通信(有通信协议),我们采用功能强大的Visual C++6.0语言来实现这种小型集散控制系统的上、下位机的通信和友好的监控界面,实现了上位机与PLC间的通信。2.通讯软件的设计 在本项目中,上位机选用计算机, 下位机选用日本Omron公司的CP1H系列XA40DR-A可编程序控制器。在计算机外设中,RS-232串口因为其组成方式简单,编程控制方便而成为应用为广泛的I/O通道之一。32 位下串口通信程序通常采用两种方法实现:一是利用ActiveX控件; 二是使用API通信函数。使用ActiveX控件, 程序实现非常简单, 结构清晰,缺点是欠灵活; 使用API通信函数的优缺点则基本上相反[2]。VC++6.0的MSComm是Microsoft 公司提供的简化bbbbbbs 下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法,笔者采用了这种方法。其端口接线见附图。2.1 上位机与PLC的通讯协议 HOST bbbb系统使用HOST bbbb 通信协议进行通信,上位机具有传送优先权,总是首先发出命令并启动通信,HOST bbbb 通信单元收到命令交由PLC执行,然后将执行结果返回上位机,两者以帧为单位轮流交换数据。2.2 上位机的PLC链接通讯 通信时一组传送的数据称为块,它是命令或响应的单位,从上位机发送到HOSTbbbb 单元的数据称为命令块,相应的,从HOSTbbbb单元发送到上位机的数据称为响应块。多点通信时,单帧发送的大数据块为131 个字符,因此当一个数据块含有132 个或更多字符时,要分成两帧或多帧进行发送。多帧发送时中间帧的格式为:正文、FCS、分界符。起始帧、中间帧的长度为131 ,结束帧的长度多为131 个字符。 Omron系列的PLC 通过RS232 口与主机通信有两种方式,种是由上位机向PLC 发送初始命令,第二种是由PLC 向上位机发送初始命令[3]。在监测系统中一般采用种方式。有关通信协议如下所述:2.2.1上位机→PLC 的命令格式 其中:(1)@为起始标志符;(2)N2 、N1 为PLC 节点标志码,由两位十进制数表示,它们用来指定与上位机通信的PLC。而PLC 自己的通信节点码可由它的DM6648 和DM6653 来设置;(3)CMD2 、CMD1 为两字节命令码;(4)MT 为命令内容,用来设置具体的命令参数;(5)V2、V1 为两字节的帧校验码,它是从开始符“@”到MT码结束的所有字符的ASCII 码按位异或的结果; 帧校验和是一个转换成2 个ASCII 字符的8 位数据。它把帧中每一个字符顺序地进行异或操作而得到的结果,即把帧的个字符到正文结束的所有字符转换成二进制形式的ASCII 码后,逐个异或而得到的[4]。当发送命令时,将其加在命令格式中,作为帧的一部分发送到接收端。当接收数据时,按上述步骤重新计算FCS ,当计算结果与数据块中所带的FCS 相同时,说明传输无误,否则,说明接收到的数据不正确。(6)“*”和“CR”两字符表示命令结束。 例如,@00WD00060500表示写一个数500到节点为0的PLC的DM0006中。2.2.2 PLC→上位机的响应格式 其中S2 、S1 为命令结束状态码,如00 表示正常结束,01 表示RUN 模态下PLC 无法完成上位机命令,其余符号代码意义同上。实现上位机与HOST bbbb 通信单元的通信只需编写上位机程序,因为HOST bbbb 通信单元自身带有通信程序,上位机下发命令,地址相符的PLC 自动上传响应帧,所以这一部分程序不需要客户编写,但是,编写上位机的通信程序时,通信参数的设置必须保证与PLC 的通信参数一致性。3.用VC++6.0编写串行通信程序 首先建立一个基于对话框的MFC应用程序SCommTest,支持ActiveX控件,电话形状的控件是在系统中注册过的MicrosoftCommunications Control, version 6.0,接受缺省的选项。1.打开串口设置串口参数 在主对话框CSCommTestDlg::OnInitDialog()中打开串口,加入如下代码:if(m_ctrlComm.GetPortOpen())m_ctrlComm.SetPortOpen(FALSE);m_ctrlComm.SetCommPort(1); //选择com1i f ( ! m _ c t r l C o m m . G e t P o r t O p e n ( ) ) m _ c t r l C o m m .SetPortOpen(TRUE);//打开串口elseAfxMessageBox("cannot open serial port");m_ctrlComm.SetSettings("9600,E,7,2"); //波特率9600,偶校验,7个数据位,2个停止位m_ctrlComm.SetbbbbbModel(1); //1:表示以二进制方式检取数据m_ctrlComm.SetRThreshold(1);//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件m_ctrlComm.SetbbbbbLen(0); //设置当前接收区数据长度为0m_ctrlComm.Getbbbbb();//先预读缓冲区以清除残留数据2.发送数据 为发送按钮添加一个单击消息BN_CLICKED处理函数,选择IDC_BUTTON_MANUALSEND,添加OnButtonManualsend()函数,并在函数中添加如下代码:UpdateData(TRUE); //读取编辑框内容SendData(m_strTXData1,6);// m_strTXData1表示发送速度命令的具体数值,6表示写数据的地址DM0006Sleep(100);SendData(m_strTXData2,12); //m_strTXData1表示发送时间命令的具体数值,12表示写数据的地址DM00123.发送命令 按照命令格式,本课题主要发送两个WD命令:(1)数据采用十进制发送,向DM0006中写入速度指令;(2)数据采用十进制发送,向DM0012中写入时间指令。部分程序如下:Void CSCommTestDlg::SendData(int m_TobeSend,intm_address){ CByteArray Array;unsigned char auchMsg[45]={0}auchMsg[0]=64; // 起始标志符auchMsg[1]=0x0; //节点号auchMsg[2]=0x0; auchMsg[3]=‘W‘; //命令符auchMsg[4]=‘D‘;auchMsg[5]=m_address/1000;auchMsg[6]=(m_address%1000)/100;auchMsg[7]=(m_address%100)/10;auchMsg[8]=m_address%10;auchMsg[9]=m_TobeSend/1000;auchMsg[10]=(m_TobeSend%1000)/10;auchMsg[11]=(m_TobeSend%100)/10;auchMsg[12]=m_TobeSend%10;LRC(auchMsg,13);//auchMsg[13] ,auchMsg[14] ,保存FCS值auchMsg[15]=‘*‘; //命令结束符auchMsg[16]=13;Array.RemoveAll();for (Count=0;Count<17;Count++)Array.Add(auchMsg[Count]);m _ c t r l C o m m . S e t O u t p u t ( C O l e Va r i a n t ( A r r a y ) ) ;4.计算校验码函数unsigned char uchLRC = 0 ; 初始值设定while (usDataLen——){uchLRC ︿= *auchMsg++; }unsigned char high=0xF0;//high为校验码的高位unsigned char low=0x0F;//low为校验码的低位high&=uchLRC;low&=uchLRC;high>>=4;右移四位if(high<=9)high=high+48;elsehigh=high+55;if(low<=9)low=low+48;elselow=low+55;*auchMsg++=high;*auchMsg++=low;4.结束语 此程序在VC++6.0中运行通过,并成功应用于振动磨的控制中。该系统采用OMRON XA40DR-A PLC与上位机连接组成控制系统,上位机通过串行口向PLC发出写命令及数据,PLC接受数据后,通过D/A转换模块,将模拟量发给变频器,从而实现了振动磨振动速度和时间的控制。欧姆龙C系列P型PLC的输入继电器介绍 欧姆龙PLC的输入继电器是用来接收PLC外部开关(或模拟)信号的“窗口”,只能由外部信号驱动,不能被程序指令驱动。P型机的输入继电器加装I/0 扩展后多可占有5个通道,其编号为00~04,每个通道有16个继电器。欧姆龙C系列P型PLC的输入继电器如表所示。欧姆龙CPM1A系列PLC的编程元件与所有PLC一样,CPM1A内部的“软继电器”可以将用户数据区按继电器的类型分为7大类区域:即I/O继电器区、内部辅助继电器区、专用继电器区、暂存继电器区、定时/计数继电器区、保持继电器区、和数据存储继电器区。区域中的每一位继电器都有“0”或“1”两种状态,而且这些继电器是可以通过程序被寻址访问,所以把这类继电器称为“软”继电器。OMRON公司的系列PLC采用“通道”(CH)的概念来标识数据存储区中的各类继电器及其区域,即将各类继电器及其区域划分为若干个连续的通道,PLC则是按通道号对各类继电器进行寻址访问的。CPM1A型PLC的数据区继电器通道号分配见表4-6。每一个通道包含16个位(即二进制位),相当于16个继电器。用五位十进制数字就表示一个具体的继电器及其触点号。例如00001表示000通道的第01号继电器;01001表示010通道的第01号继电器等等。其中的通道号表示了继电器的类别。CPM1A的继电器类型及通道号区表示如下:表4-6 数据区继电器通道号分配表名 称点 数通道号继电器地址功 能输入继电器160点(10字)000~009CH00000~00915能分配给外部输入输出端子的继电器(没有使用的输入输出通道可用作内部辅助继电器使用)输出继电器160点(10字)010~019CH01000~01915内部辅助继电器512点(32字)200~231CH20000~23115程序中能自由使用的继电器特殊辅助继电器384点(24字)232~255CH23200~25507具有特定功能的继电器暂存继电器8点TR0~7在回路的分叉点上,暂时记忆ON/OFF状态的继电器保持继电器320点(20字)HR00~19CHHR0000~1915程序中能自由使用,且断电时也能保持断电前的ON/OFF状态的继电器辅助记忆继电器256点(16字)AR00~15CHAR0000~1515具有特定功能的继电器链接继电器256点(16字)LR00~15CHLR0000~15151:1连接中作为输入输出用的继电器(也可用作内部辅助继电器)定时器/计数器128点TIM/CNT 000~127定时器、计数器共用相同号数据内存(DM)可读/写1002字DM0000~0999DM1022~1023以字为单位(16位)使用,断电时保持数据DM1000~1021不作为存放异常历史时可作为常规的DM自由使用DM6144~6599、DM6600~6655不能在程序中写入(可用外围设备设定)。异常历史存放区22字DM1000~1021只读456字DM6144~6599PC系统设置区56字DM6600~6655欧姆龙推出小型一体化PLC——SYSMACCPlH 为了满足工业控制领域对设备的高性能、高集成度以及提高维护性能的需求,欧姆龙公司近日推出了全新的具有高度扩展性的小型一体化可编程控制器SYSMACCPlH,这主要包括CPlH—X标准型、CPlH—XA模拟量内置型和CPlH—Y高速定位型等3种型号。CPlH集CS/CJ各功能为一体,通过内置的多种功能充实、强化了应用能力,并且缩短了追加复杂程序的设计时间。拥有了诸多的新增功能后,这款全新的小型PLC可应用于纺织、印刷等行业。 CPlH定位于小型机,但它却是基于CS/CJ(CJ是中型PLC平台)平台,因此具备了很多中型机的功能,如脉冲输出和模拟量输出等。CP1H扩展了多种I/O功能,如集成的高速脉冲输出功能,可标准搭载4轴;计数器功能可标准搭载4轴相位差方式;配备的通用USBl.1并联端口也可实现标准搭载;具有串行通讯端口,可自由选择RS232和RS485。另外,CP1H—XA还支持4通道输入/2通道输出的模拟量输入/输出功能。 CPlH的速度和处理功能很快,一条基本指令的处理时间仅为lus,其他性能还包括:内存盒,可收集程序和初始值数据,以便拷贝到其他设备上;7段LED的状态显示;电池不足运行,接通电源时,CPU内置的闪存可以保存和输出所有DM区的初始值。在软件方面,CPlH可缩短复杂程序设计的时间,采用操作简单的编程软件CX—Programmer,预置各种标准应用模块,可以简单的直接设定欧姆龙C系列P型PLC的输入继电器简介 欧姆龙PLC的输入继电器是用来接收PLC外部开关(或模拟)信号的“窗口”,只能由外部信号驱动,不能被程序指令驱动。P型机的输入继电器加装I/0 扩展后多可占有5个通道,其编号为00~04,每个通道有16个继电器。欧姆龙C系列P型PLC的输入继电器如表所示。OMRON PLC 内输出继电器Y0的功能和电路图 输出继电器用来把程序执行结果送到外部的执行元件,如电磁阀,接触器等。 从PLC输出到灯亮一般要15ms 左右。欧姆龙PLC CPM1A小型机的组成 OMRON与所有小型机一样,CPM1A系列PLC采用整体式结构, 内部由基本单元、电源、系统程序区、用户程序区、输入/输出接口、I/O扩展单元、编程器接口及其它外部设备组成。1.基本单元CPM1A系列整体式PLC的基本单元又称主机单元,内含CPU,可以单独使用,是PLC控制系统不可缺少的部分,其外部连接口主要有I/O接线端子、各种外连插座或插槽,以及各种运行信号指示灯等部分。I/O接线端子可直接用来连接控制现场的输入信号(开关、按钮等)和被控执行部件(接触器、电磁阀等),总的I/O端子数量就称I/O点数,CPM1A系列整体式CPU可分作10点、20点、30点、40点。在CPM1A系列PLC主机面板上有两个隐藏式插槽。一个是通讯编程器插槽,插接手持式编程器即可进行编程和现场调试,或配接一个专用适配器RS-232即可与个人计算机(PC机)连接,在bbbbbbs系统平台下可直接用梯形图进行编程操作,大大改进了编程环境,并可以进行实时监控和调试。另一个是I/O扩展插槽,可用于连接I/O扩展单元。CPU主机面板上设有若干LED指示灯,其灯亮、闪烁表示单元状态见表4-1:表4-1 CPU主机面板LED指示灯状态指示LED显示状态POWER(绿)亮电源接上灭电源切断RUN(绿)亮运行/监视模式灭编程模式或停止异常过程中ERROR/ALARM(红)亮发生故障闪烁发生警告灭正常时COMM(橙)闪烁与外设端口通信中灭上述以外2.I/O扩展单元I/O扩展单元主要用于增加PLC系统的I/O点数以满足实际应用的需要,I/O扩展单元与CPU单元相似,体积稍小。它没有CPU,不能单独使用,只有I/O扩展插槽而没有通信编程器插槽。在它的左右两侧设有I/O连接插座,当CPU单元需要扩展I/O点数时,可直接采用带扁平电缆的插头连接即可。输入、输出端子分别连接输入或输出电路,其对应LED显示灯亮、灭分别表示输入或输出的接通状态。扩展单元的I/O点数分别为12点/8点,只有I/O为30点和40点的CPU单元才能扩展,且多连接3个I/O扩展单元。3.编程器CPM1A系列小型机可采用多种编程设备进行编程,在现场调试和编程比较常用的是手持式编程器。这种编程器体积小、结构紧凑、便于携带。它通过连接电缆直接插入编程器槽,在距主机一定距离处即可进行编程。利用手持式编程器可进行用户程序的输入,修改,调试以及对系统运行情况进行监控等操作。手持式编程器只能用助记符号指令输入程序,而不能直接显示梯形图。CPM1A系列PLC也可以采用计算机进行编程和实时监控,OMRON公司SYSMAC C系列PLC配备专用编程软件CX-Programmer。企业新闻