西门子plc通讯方式,变频器与PLC的RS485通信连接方

1.单台变频器与plc的RS485通信连接单台变频器与PLC的RS485通信连接如下图所示,两者在连接时,一台设备的发送端子应分别与另一台设备的接收端子连接,接收端子应分别与另一台设备的发送端子连接。

周捷(南京东南大学仪器科学与工程系)程春玲(南京邮电学院信息所) 摘要:MicroMaster变频器的RS-485通信协议,利用VC5.0中的ActiveX控件MSCOMM通信控件实现了Windows95下单台微机与多台变频器的串行通信控制,并能实时检测各变频器的运行状态。 关键词:工控PC机ActiveX控件RS-485通信协议变频器控制 工业场合中,经常要用变频器去控制交流电机的转速、转向。在某些场合,需要用1台工控PC机灵活地控制多台变频器,以达到控制各交流电机的目的。针对这一需要,一些公司(如德国西门子、日本东芝、三菱等公司)推出了带有RS-485通信接口的变频器,使用户能方便灵活地选择变频器的强大功能来设计各自的工业控制系统。 在Windows95下开发工控软件,可利用Windows95的丰富资源,方便地生成各种菜单及美观大方的图形界面,软件产品质量高且开发周期短。VisualC++5.0是Microsoft公司较新推出功能较强的Windows开发软件,由于只能在Win95下运行开发32位的应用程序,而在Windows环境下,系统完全接管{TodayHot}了各种硬件资源,不允许用户直接控制串行口的中断管理,因此如何在Windows环境下开发微机的底层资源,已成为当今工业控制软件的一大热点及难点。 本文利用VC5.0的ActiveX控件——MicrosoftCommunication控件,方便地实现了Win95环境下与多个西门子MicroMaster变频器的串行通信接口,成功地实现了用单台工控PC机对多台交流异步电机的灵活控制。 一、系统的总体设计 图1为系统的总体设计方框图,这里只重点突出工控PC机与变频器RS-485的接口部分。RS-485的驱动器可带32个接收器,在波特率为100Kb/s时,通信距离可达到1200m;通信距离为15m时,波特率可达10Mb/s。在工业现场,RS-485是应用较多的一种通信方式。图中工控PC机通过485通信接口卡与多个变频器相连接,较多可达到32台。每个变频器被赋予各自的地址码用以识别身份,这样上位机便能通过485通信线对挂在上面的所有变频器进行控制操作。

西门子plc的品质非常好,其网络稳定性、开放性深受工控人员的喜爱,而且编程软件分类多,使用方便。在国内工控界具有显著地位。虽然大家对西门子plc都有一定的了解,但要你说出西门子PLC各种通信方式的特点,相信很多人都不能完整答出。下面就是几种常见的西门子通信方式?一、PPI通讯PPI协议是S7-200CPU最基本的通信方式,通过原来自身的端口(PORT0或PORT1)就可以实现通信,是S7-200CPU默认的通信方式。二、RS485串口通讯第三方设备大部分支持,西门子S7PLC可以通过选择自由口通信模式控制串口通信。最简单的情况是只用发送指令向打印机或者变频器等第三方设备发送信息。不管任何情况,都必须通过S7PLC编写程序实现。当选择了自由口模式,用户可以通过发送指令、接收指令、发送中断、接收中断来控制通信口的操作。三、MPI通讯MPI通信是一种比较简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI网络最多支持连接32个节点,最大通信距离为50M。通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485中继器等网络元器件。西门子PLC与PLC之间的MPI通信一般有3种通信方式:1、全局数据包通信方式2、无组态连接通信方式3、组态连接通信方式四、以太网通讯以太网的核心思想是使用共享的公共传输通道,这个思想早在1968年来源于厦威尔大学。1972年,Metcalfe和DavidBoggs(两个都是著名网络专家)设置了一套网络,这套网络把不同的ALTO计算机连接在一起,同时还连接了EARS激光打印机。这就是世界上第一个个人计算机局域网,这个网络在1973年5月22日首次运行。Metcalfe在首次运行这天写了一段备忘录,备忘录的意思是把该网络改名为以太网,其灵感来自于“电磁辐射是可以通过发光的以太来传播”这一想法。1979年,DEC、Intel和Xerox共同将网络标准化。1984年,出现了细电缆以太网产品,后来陆续出现了粗电缆、双绞线、CATV同轴电缆、光缆及多种媒体的混合以太网产品。以太网是目前世界上最流行的拓朴标准之一,具有传传播速率高、网络资源丰富、系统功能强、安装简单和使用维护方便等很多优点。五、PROFIBUS-DP通讯PROFIBUS-DP现场总线是一种开放式现场总线系统,符合欧洲标准和国际标准。PROFIBUS-DP通信的结构非常精简,传输速度很高且稳定,非常适合PLC与现场分散的I/O设备之间的通信。

图片 1

二、变频器的串口通信协议 对于西门子的MicroMaster变频器,其通信方式为RS-485,波特率较高可达到19200b/s;1位起始位;8位数据位;1位偶校验;1位停止位。变频器接收控制的通信协议如下: 与上位机向变频器发送的控制字相比,变频器回送的状态字只是以ZSW代替了STW,HIW代替了HSW,其余的字的含义是一样的。ZSW是16位的状态字来指示变频器的当前运行状态,各位的具体含义见说明书;HIW也是16位的字{HotTag}代表变频器的输出频率,其定义与HSW是一样的。 因此,对于变频器能通过面板按键设置的功能,通过以上的通信协议也一样能实现。并且通过RS-485通信线较多能同时控制32台变频器,同时各变频器的运行状态也能实时地回送给上位机,这就大大方便了用户,增加了控制系统的灵活性。 三、VisualC++5.0下对变频器进行串行通信控制 1、ActiveX控件MicrosoftCommControl5.0 在Windows环境下,操作系统完全接管了各种硬件资源,不允许用户直接控制串行口的中断管理。以往程序员只能通过数目众多的API函数来控制串口。 VC5.0下提供了1个ActiveX控件MicrosoftCommunicationControl5.0,简称MSComm控件。用户可以在自己的应用程序中嵌入MSComm控件,利用它可以方便地进行计算机串口的通信管理。VC5.0中的ActiveX控件MSComm与VC4.0中的OLE通信控件相比,增加了一些新的功能,其中较为有用的1个改进是将Input(从缓冲区读取接收数据)的数据类型从CString改成Variant,同时新增1个属性InputMode,使程序能方便地选择从缓冲区读取数据的格式:字符串格式或2进制格式。 在VC5.0开发环境中,选择MicrosoftCommunicationControl5.0控件插入程序,则系统自动为所插入的控件定义1个CMSComm类,与其相关的文件保存在mscomm.h和mscomm.cpp文件中。确认以上菜单选择后,则MSComm控件已嵌入到项目文件中。 MSComm控件有许多属性,其中一些重要的属性如下: CommPort:设置串口号,类型:short; Settings:设置串口通信参数,类型:CString; PortOpen:设置或返回通信口的状态,类型:BOOL; InputMode:设置从缓冲区读取数据的格式,类型:long; Input:从接收缓冲区读取数据,类型:VARIANT; Output:向发送缓冲区写入数据,类型:VARIANT; InBufferSize:接收缓冲区的大小,类型:short; InBufferCount:接收缓冲区的字节数,类型:short; OutBufferSize:发送缓冲区的大小,类型:short; OutBufferCount:发送缓冲区中的字节数,类型:short; InputLen:设置或返回Input每次读出的字节数,类型:short; CommEvent:串口事件,类型:short。 其中串口号设置为1、2等表示COMM1、COMM2。参数设置的格式为“B,P,D,S”,B表示波特率,P表示奇偶校验(N-无校验,E-偶校验,O-奇校验),D表示字节有效位数,S表示停止位数。串口状态为BOOL变量,TRUE表示打开串口,FALSE表示关闭串口。InputMode使程序能方便地选择从缓冲区读取数据的格式,设置为0时字符串格式,设置为1时表示2进制格式。InputLen设置或返回的是用Input从缓冲区读字符串时每次读出的字符个数,这个性质对于读出数据块中定长数据串非常有用。 另外,MSComm控件提供了2种方法来处理串口通信,上面属性的InBufferCount和OutBufferCount用于串口的查询方式。对于较复杂的通信任务,可通过SetCommEvent()函数设置串口要响应的事件,当相应事件或串口错误事件发生时,系统会激活OnComm()事件,在OnComm()中添加用户的处理代码,则可实现类似DOS中断的串口处理程序。 2、变频器串口通信控制检测软件的编制 在项目文件嵌入MSComm控件的头文件mscomm.h及实现文件mscomm.cpp之后,为了用该控件控制1个串口进行通信操作,还必须在应用程序中插入该控件。为此,我们为程序的某个对话框插入MSComm控件,控件ID为IDC_MSCOMM1,并利用ClassWizard为其添加变量CCMSCommm_Coml,则程序中对串口的各种操作都可通过变量m_Coml来实现。 MicroMaster变频器回送的状态信息1帧为14B。为此,程序编制上采用事件驱动的通信方式,串口每接收14个字符便激活1个OnComm()事件,在OnComm()消息处理函数中加入相应的处理代码,用来读取状态字ZSW和HIW各位的状态参数,并作出相应的处理,如显示、报警等。下面简要给出用事件驱动方式读出变频器回送状态字的程序源代码。设RS-485卡的口地址为工控PC机的串口4的地址,波特率为9600b/s。 串口初始化程序如下: m_Coml.SetCommPort; //设置串口4 if(!m_Coml.GetPortOpen m_Coml.SetPortOpen; //打开串口 m_Coml.SetSettings(″9600,e,8,1″); //串口参数设置 m_Coml.SetInputMode; //设置Binary缓冲输入方式 m_Coml.SetRThreshold; //每接收1个字符时//激发OnComm()事件 工控PC机控制变频器的参数通过类ColeVariant的构造函数来实现,ColeVariant可以接受各种类型的数据(如字符串、整数、浮点数等)并自动将其转换为符合VARIANT要求的数据。程序代码如下: m_Coml.SetOutput(ColeVariant; //发送起始//字符02H m_Coml.SetOutput(ColeVariant;//发送数据//长度字符0CH …… //发送其它的控制参数 对于变频器回送的状态信息则利用Windows的消息处理函数OnComm()进行处理。利用ClassWizard为MSComm控件IDC_MSCOMM1添加消息处理函数OnOnCommMscomm1(),在OnOnCommMscomm1()中加入处理代码如下(较后2个语句为添加的程序代码,其余代码由ClassWizard自动生成): voidCGpsdataDlg::OnOnCommMscomm1() { //TODO:Addyourcontrolnotificationhandler //codehere m_Coml.SetInputLen; //读取串口缓冲区全//部数据 VARIANTParameter=m_Coml.GetInput(); //数据赋给VARIANT变量 …… //具体程序处理代码 } 在消息处理函数OnOnCommMscomm1()中,将变频器回送的14个状态字每一次全部读到VARIANT变量Parameter中,然后程序再从VARIANT类型的数组变量Parameter中分别读取各状态字节,在屏幕上显示、判断并报警。 本文利用VC5.0下的ActiveX控件和MicroMaster变频器RS-485的串行通信功能,实现了在Windows95环境下用单台工控PC机控制多台变频器的任务,并能实时检测各变频器的运行状态。整个控制系统灵活方便,具有很大的实用性。

本文由正版香港马报免费资料发布于产品展示,转载请注明出处:西门子plc通讯方式,变频器与PLC的RS485通信连接方

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。