全国服务热线 15221406036

西门子模块6ES7214-2AS23-0XB8诚信交易

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

西门子模块6ES7214-2AS23-0XB8诚信交易

1 引言

    随着计算机科学技术、工业控制等方面的新技术的迅速发展,使用计算机监控系统与现场PLC 设备进行数据交换得到了广泛的应用。这类数据交换往往具有以下的特点,数据量大,采集点分散,带宽较窄。由于不同厂家所提供的PLC 现场设备的通讯机制并不相同,计算机监控系统软件需要开发的设备通信驱动程序就越来越多。这种复杂的设备驱动程序的开发具有以下的特点:



    首先,上位监控系统与PLC 设备间的数据交换,应用较普遍。



    其次,这种数据通讯过程,缺乏有通用性的框架设计,开发周期长,难度大,难以通用。



    再者,在有限带宽限制条件下的大数据量传输,普遍存在着信道利用率低,系统效率差,不稳定的情况,迫切需要大幅度提高信道利用率的算法。而且在已有的数据交换标准中,对于有限带宽条件下的信道利用率也没有成熟的设计。

PLC资料网



    如上所述,开发PLC 设备的通用性数据通信接口具有广泛的应用前景和实现价值。本文主要针对上位监控系统与PLC 设备之间的数据通信进行分析,介绍了PLC 设备的驱动开发的方法,并提供PLC 通信的实例。



    2 PLC 驱动的使用



    本文中以使用串口通讯的PLC 为例进行分析和说明,监控系统为北京昆仑通态公司生产的MCGS 监控软件。开发工具为VC++6.0。


    MCGS 中PLC 已经将串口通讯的波特率设置等功能集成至串口父设备中,因此PLC 设备驱动是作为MCGS 监控软件设备管理窗口中的子设备提供的。它可以使用父设备的通讯功能,即可以与其他设备共享父设备的通讯功能。由于使用串口的PLC 设备较多,在这里我们以使用串口通讯方式的PLC 为例进行说明PLC 通用驱动的构架的开发。如使用自定义编程电缆方式或使用以太网方式连接,此PLC 驱动构架同样适用。



    使用串口通讯的PLC 与上位机的通讯方式中,有RS232、RS485、RS422 多种方式。如果设备是采用RS232 方式通讯,那么在一个串口下面只能挂接一个设备。如果采用RS485 或者RS422 的方式通讯,那么可以使用多个设备构成一个网络,在这个网络中,为了识别各个不同的设备,给每一个设备加上一个标志,一般来说把这个标志称作设备地址。这个总线上的设备分为主设备和从设备两类。在工作时,从设备一直在监听通讯线路上的数据,并对这些数据进行分析,当收到对自己的请求时,会发送一个相应的应答帧。主设备在工作时会根据需要向从设备发送请求帧,请求一些数据或者是发送一条命令,在发完请求帧后主设备需等待从设备的回答,这个等待的过程有一个超时时间限制。如果过了一定的时间还没有收到回答,它会认为本次通讯失败,然后按照一定的逻辑判断是应该重发请求还是放弃。


    通讯使用的通讯协议,分为ASCII 通讯和16 进制通讯两类。PLC 的通讯协议中大多数都是使用16 进制通讯。而且在串口通讯中,为了保证通讯的正确性、完整性,通常在通讯帧的尾部加上校验,常见的有和校验,异或校验,CRC 校验等等。



    在通讯过程中,上位机的MCGS 监控软件调用PLC 驱动,根据具体协议,向PLC 设备发送寄存器的读写命令,并接收应答数据。



    3 主要流程



    3.1 采集流程



    为便于说明,此处以一个采集周期内仅需单次采集的简情况为例。在5.1 中的密集采集模式中,描述了对一周期内需多次采集的算法。 PLC资料网


    采集过程描述如下:首先进行初始化,随后创建通道。进入数据采集周期,在每个数据采集周期中,首先形成读命令,随后校验发送数据帧,读写串口完成一次通讯,如果通讯成功,那么校验后将接收到的数据解码输出到通道,返回成功标识,如果通讯不成功或校验失败,返回失败标识。 PLC资料网


    3.2 解析函数流程

 



    上图为解析数据帧的流程图。不同的设备具有不同的协议内容,使用定义好的模版解析函数只需要开发人员按照设备协议将帧分割为有效的数据部分,添入联合体FrameField 即可。该联合体可将协议数据小分割为位来进行操作。




    如上图所示,个字节为帧头,后一个字节为帧尾,第二个字节为状态标示,第三至第六个字节为模拟量,第七个字节为单位,第八个字节按位分为四路输入和四路输出。



    4 接口设计



    通常来说,一个厂家的同系列的PLC 产品,通讯协议一般是一样的。区别只是在于其中一些寄存器的大小不同。这样我们就考虑可以让这一个系列的设备使用同一个驱动。为了提高通用性,同时一般情况下,用户也不需要使用所有的寄存器,所以把这种设备构件的通道设计成用户可以在组态时自己进行定义。所有的通道及其所对应的参数(即是寄存器地址)都由用户自己进行定义。驱动程序根据用户定义的信息进行通讯。而且PLC 当中可能有一些参数用户并不常用,如果组成通道,每一个采集周期都要进行通讯,效率比较低下,考虑到这种情况,我们提供了一些外部接口供监控系统调用,在这些接口中可以发送命令,支持所有的寄存器通道。



    而对不同厂家的PLC 设备进行分析,也可以发现,可以将通讯过程和协议方式进行抽象,提取它们的共同点和变化点,封装和隐藏数据交换过程中的细节,达到通用的目的。通过封装格式,规范代码,统一接口,提高驱动开发效率,降低驱动开发的难度。提高代码的重用性,增强驱动的稳定性,减少设计中容易出现的错误。使开发人员把主要的精力放在对设备的熟悉和对协议的分析上,而不是过多地纠缠于编程实现的细枝末节上。



    封装的数据和操作包括:

PLC   隐藏一次数据采集中的底层通讯过程(某些设备完成一次采集需要一次以上的发收过
程,如西门子S7200);封装针对采集点分散的动态采集算法;封装常用的命令操作;对与监控系统间的交互提供统一的接口;PLC 驱动封装了底层的通讯过程,只将接口方法暴露在外面,开发人员以统一的方式去调用这个方法,从而保证软件对客户的透明性,使开发人员从低层的开发中脱离出来,降低开发的难度。



    对驱动的开发人员来说,需要关注的接口仅有以下部分:

PLC资料网



    定义设备本身的属性;如地址、实时采集的时间要求等;定义设备的读写操作属性;如通道数量等;通用设计仅提供跟设备协议相关的组包和解包接口,实现过程将由开发人员完成。


    5 关键问题分析


    为提供信道利用率,提高系统效率,在PLC 的通信框架设计中考虑了几个关键问题。 PLC资料网


    5.1 三种采集模式


    经过对现有的数据交换的分析,将用户的一般需求拟概括为三种采集模式,即密集采集,按需采集,定时采集。



    密集采集模式:在这种情况下,用户希望能尽量利用物理带宽,保证快的采集速度和更新。在这种模式下,理想状态是设备始终处于采集状态。采集目前所有激活通道中离需要采集的周期时间小的通道。保证所有的通道都能获得采集机会,但是相对与其他模式,在该模式下CPU 占用率会比较高。



    按需采集模式:在通讯链路需要受控的情况下,比如用户采用GPRS 进行采集,按流量计费,所以不能进行大量的通讯。这时候通过设置采集模式为按需采集,然后在需要时再调用接口函数启动单次采集。否则不进行数据采集。
    
    定时采集模式:该模式是在CPU 的占用率和采集速度之间进行折衷的采集框式,保证在用户设置的通道刷新周期的时间内进行通道的采集,之后直到下一次通道的刷新周期到达再进行下一次采集。



    在模块设计中,采集模式作为设备类的一个属性,由开发人员根据具体情况,选择合适的采集模式。不同采集模式的采集算法实现如下:


    密集采集执行流程:设置一个采集周期如1000ms。每当开始一个新采集周期时,重新计算采集通道的优先级别。遍历所有的通道,找出目前优先级高的通道,进行采集。对通道进行分块(块中包含需要刷新的通道)。进入通讯循环(某些设备进行一次采集至少需要两次通讯所以需要通讯循环)。发送数据请求并等待回应;根据返回的信息解析出结果,并作相应处理;判断是否需要下一次采集,如果不需要跳出循环;更新通道和采集标志;继续发送线程消息启动下一次采集直到一次通讯循环结束;直到遍历完所有需采集的通道。



    按需采集执行流程:循环对每个通道进行采集,保存采集成功的值,并进行后续处理。定时采集执行流程由定时器触发,采集流程与密集采集一样,但在判断没有满足采集要求的通道不进行采集。 PLC资料网


    5.2 采集点分散的动态采集算法



    在现有的数据交换过程中,用户关心的数据往往只占全部信息的很小一部分,而且这些采集点分散在海量的数据中,如果不加判断的依次读取数据,有效信息与采集信息的比例很低,实时性差;如果仅采集有效信息,分配的采集粒度过小,又会造成系统效率低下,信道利用率差。针对这一问题,采取以下的解决方法: 


    (1)只采集用户关心的数据。如当有多个通道时,只传送当前用户只关心的通道的数据,而不关心其它的通道。保证采集尽量少的通道,为每个需要采集的通道提供更快的采集周期。从而减少通讯量。


    (2)对于待采集的数据分配不同的优先级,对实时性要求高的部分数据优先采集。可以根据用户设置的数据刷新时间来改变其优先级。



    (3)实现一个动态分块算法,在一个合理的粒度上对采集的信息分块传输,兼顾信道利用率与有效信息获取的实时性;实现的分块算法简述如下:在采集时判断,如果当前采集的寄存器类的激活通道可以组成一个数据请求包,则进行处理,提高一次采集的通道数。根据开发人员定义的通道优先级,找出优先级高的通道地址附近的地址连续(或紧密)的通道,这些通道形成一个通道块。重复同样的过程,将剩下的通道继续分块,直到形成的块数大于某一规定的数值比如20 或将本寄存器的所有通道分配完成。 PLC


    (4)根据通讯协议的特点,在打包数据请求时尽量保证包含更多的请求,从而减少请求的总次数。


    6 结论

    根据本文的PLC 通用性数据接口开发人员已开发出多个厂家的PLC 驱动,并在不同项目中得到应用。在此PLC 通用数据接口基础上开发PLC 驱动,缩短了开发时间和难度。投入运行的系统通信稳定,采集速度快,通用性好,可靠性高。保证了项目的顺利实施。本文作者创新点:具有通用性的监控系统与PLC 通信接口设计,能够大大缩短开发时间和难度,并提高通信稳定性、实时性,具有很高的实用价值和经济价值。 PLC

1  引言
西门子S7-200PLC是德国西门子公司生产的小型PLC。S7-200以其高可靠性、指令丰富、内置功能丰富、强劲的通讯能力、较高的性价比等特点,在工业控制领域中被广泛应用。S7-200PLC的突出特点之一是自由口通讯功能。如何实现S7-200PLC与个人计算机的互联通信,是S7-200PLC应用的技术关键。
可编程控制器与计算机之间的通讯一般是通过RS-422口或RS-232C口进行的,信息交换的方式为字符串方式,运用RS-232C或RS-422通道,容易配置一个与计算机进行通信的系统,将所有软元件的数据和状态用可编程控制器送入计算机,由计算机采集这些数据,进行分析及运行状态监测。用计算机改变可编程控制器设备的初始值和设定值,从而实现计算机与可编程控制器的直接控制,一旦确定了可编程控制器的控制指令,就能很方便地与计算机连接。


bbbbbb.google_render_ad();



2  S7-200的自由口通讯模式
S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)、Rrofibus DP等。PPI等通讯协议主要用于西门子系列产品之间的通讯以及对PLC编程。在自由口模式下,可由用户控制串行通讯接口,实现用户自定义的通讯协议。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。
S7-200CPU上的通信口是与RS-485兼容的9针D型连接器,PLC还提供了实现 RS-485与 PC机上RS-232C相连接的PC/PPI电缆,利用它可以方便地实现S7-200系列PLC与PC之间的硬件连接。
S7-200的编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。本文所给出的范例是使用SIMATIC指令的STL编程。



3  S7-200 PLC端的通讯程序实现
PLC程序分为主程序和中断程序。主程序完成初始化通信口、开中断、判断、发送数据等功能,中断程序完成接收和发送数据的功能。接收指令(RCV)启动或终止接收信息功能,必须为接收操作指定开始和结束条件。发送指令(XMT)在自由口模式下依靠通讯口发送数据。
3.1  控制字的选取
反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置;当SM0.7为1时模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许进行自由口通讯。SMB30是自由口模式控制字节,用来设定校验方式、通讯协议、波特率等通讯参数(其它控制字的设定参阅有关书籍)。
3.2  程序的一些简单介绍
NETWORK1
LD  SM0.1   // 次扫描
MOVB  16#09,SMB30  
//自由口通讯模式:9600波特率,无奇偶校验,8个数据位
MOVB  16#7C,SMB87 //接收信息状态字节
MOVB  16#53,SMB88  
//设置信息的开始字符“S”
MOVB  16#45,SMB89  

PLC资料网


//设置信息的结束字符“E”
MOVW  +5,SMW90    
//设定空闲行的时间间隔(ms)
MOVW  +179,SMW92  
//字符间/信息间定时器超时值(ms)
MOVB  60,SMB94  //接收字符的个数
NETWORK2
LD  SM0.1 MOVB 16#53,VB2499  
//设置接收和发送缓冲区的首地址
ATCH  发送完中断,9     
//把发送完成中断和发送完成中断子程序连接起来
ATCH  接收完中断,23   
//把接收完成中断和接收完成中断子程序连接起来
ENI    //允许中断
PLC程序的主要流程框图如图1所示:

 1 概述
在工业控制系统中,PLC作为一种稳定可靠的控制器已经得到了广泛的应用。但是由于中小型PLC的人机接口功能不很完善,不能提供给用户一个友好的交互界面,因此妨碍了对现场运行过程的跟踪与监控。
PLC实际工作中,通常人们采用4种装置为PLC配置人机界面:编程终端、显示终端、工作站及个人计算机。编程终端主要用于编程与调试,其监控功能相对较弱。显示终端的功能比较单一,主要用作现场显示。工作站系统很受用户欢迎,它功能全面、使用简单,但由于要配置组态软件,因而价格比较昂贵。个人计算机可配备多种语言,提供优良的软件平台,开发各种应用系统,特别是动态画面显示等,与PLC相结合组成一套PC-PLC监控管理系统,能够充分发挥它们各自的优点。但是在该系统中,关键的问题就是通信,用户对此须做较多的开发工作。
本文详细阐述了PC与PLC互连通信的一般方法,并以西门子公司的S7-200 PLC为对象,以实际四层电梯模型监控系统为例,介绍了利用大家都熟悉的编程语言Visual Basic 和Step7,实现PLC与上位计算机实时通信的通信过程。
2 通信方式
面对众多生产厂家的各种类型PLC,它们各有优缺点,能够满足用户的各种需求,但在形态、组成、功 能、编程等方面各不相同,没有一个统一的标准,各厂家制订的通信协议也千差万别。目前,人们主要采用以下三种方式实现PLC与PC的互联通信:
(1) 通过使用PLC开发商提供的系统协议和网络适配器,来实现PLC与PC机的互联通信。但是由于其通信协议是不公开的,因此互联通信必须使用PLC开发商提供的上位机组态软件,并采用支持相应协议的外设。可以说这种方式是PLC开发商为自己的产品量身定作的,因此难以满足不同用户的需求。
(2) 使用目前通用的上位机组态软件,如组态王、InTouch、WinCC、力控等,来实现PLC与PC机的互连通信。组态软件以其功能强大、界面友好、开发简洁等优点目前在PC监控领域已经得到了广泛的应用,但是一般价格比较昂贵。组态软件本身并不具备直接访问PLC寄存器或其它智能仪表的能力,必须借助I/O驱动程序来实现。也就是说,I/O驱动程序是组态软件与PLC或其它智能仪表等设备交互信息的桥梁,负责从设备采集实时数据并将操作命令下达给设备,它的可靠性将直接影响组态软件的性能。但是在大多数情况下,I/O驱动程序是与设备相关的,即针对某种PLC的驱动程序不能驱动其它种类的PLC,因此组态软件的灵活性也受到了一定的限制。
(3) 利用PLC厂商所提供的标准通信端口和由用户自定义的自由口通信方式来实现PLC与PC机的互连通信。这种方式由用户定义通信协议,不需要增加投资,灵活性好,特别适合于小规模的控制系统。
通过上述分析不难得出,掌握如何利用PLC厂商提供的标准通信端口和自由口通信方式以及大家所熟悉的编程语言来实现PC与PLC之间的实时通信是非常必要的。
3 S7-200 PLC通信方式及原理
S7-200 PLC内部集成的PPI接口为用户提供了强大的通信功能,可在多种模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通信方式具有特色,通信协议可完全由梯形图程序控制,通过它可以实现PLC与任何具有通信能力的设备进行互连,因而在本系统中选用自由口通信方式。
目前PLC与PC机的链接通信有两种方式,一种是PC机始终处于主导地位,数据的传送都由PC机定时发出命令,另外一种是PLC始终具有优先权。在本电梯模型监控系统中所有的控制信号均为开关量信号,考虑到上位PC机仅实时显示电梯的运行状态,不需向PLC发送控制指令,采用第二种通信方式。利用PLC循环扫描的特点,设备状态一旦改变,PLC立即检测到,并将反映系统状态变化的数据存入指定的数据缓冲区,通过XMT发送指令,将数据通过COM口发至上位机。每个系统的状态对应于数据缓冲区中的一个指定字节,所存储数据均为16进制数据,为保证通信过程的可靠性,上位机对所接受到的数据进行首尾字符校验,如果校验成功,则说明接收到的首末字节之间的数据是正确的,从而进行处理,否则,放弃这批数据,要求对方重发。
4 应用实例与程序设计
(1) 系统构成
S7-200 PLC内部集成的PPI接口物理特性为RS485,而上位机的标准串口为RS232,为了实现两者的通信必须进行协议转换,西门子公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此再不增加任何硬件的情况下,可以方便的实现二者的互联和协议转换。
作为控制器的S7-200 PLC利用电梯模型自带的电源线实现与四层电梯模型的互连,该电梯模型为教学试验装置,具备一般电梯的基本功能。硬件连接如图1所示。


图1 硬件连接示意图

(2) PLC部分编程
① 自由端口的初始化
在自由口通信模式下,通过设置特殊存储器SMB30(端口0),来为自由端口通信选择波特率、奇偶校验和数据位。这些设定必须与PC机设定值相一致。其格式如下:
SMB30
pp为奇偶校验选择,d为数据位选择,bbb为波特率选择。
 00为无校验,0为每个字符8位,000为38 400
baud,001为19 200baud;
 01为偶校验,1为每个字符7位,010为9 600 baud,011为4 800baud;
 10为无校验,100为2 400baud,101为1 200baud;
 11为奇校验,110为600baud,111为300baud;
mm为协议选择:00为PPI协议,01为自由口协议,10为PPI/主站模式,11默认为PPI/从站模式。
② S7-200PLC实时向上位PC机传送数据


图2 下位机程序流程图

在对电梯模型控制中,所有的控制信号均为开关量,基于这一特点,系统状态的改变即为这些开关量信号状态的改变,因此可通过跟踪这些开关量信号的上升沿信号、下降沿信号的到来,做为系统状态改变的依据。据此在本系统中,通过对同一个开关量信号的上升沿、下降沿分别定义不同的16进制数的方式,来代表信号的产生与结束,当检测到这些信号产生时,便将这些数据存入指定的数据缓冲区中的字节中,并通过COM口发至上位PC机,同时产生发送完成中断,PLC延迟等待接收来自上位机的应答信号,通过分析存储在接收字符缓冲器SMB2中的数据,判断是否需要重新发送。下位机程序如图2所示。
(3) 上位机部分编程
基于VB处理监控界面图形、数据报表及通信的方便快捷,本课题上位机的编程环境采用VB来实现。VB不仅提供了MSCOMM串行通信控件,而且也为这个控件提供了标准的事件处理函数,并通过设置它的一些属性对通信接口进行初始化,从而很容易的实现了串行通信的问题。
下面介绍一下有关此控件的属性:
Commport,设置通信连接端口。程序必须指定要使用的串行端口的号码,bbbbbbs使用所设置的通信端口与外界进行通信。
Settings,设置初始化参数。其格式为“BBBB,P,D,S”,其中BBBB为连接速度,P为奇偶校验方式,D为数据位数,S为停止位数。默认值是“9 600,n,8,1”。
PortOpen,设置通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开。
bbbbb,返回并删除接收缓冲区中的数据流。
bbbbbLen,设置从串行端口读入的字符串长度。
Rthreshold,设置引发接收事件的字符数。
bbbbbMode,设置接收数据数据形式。
OnComm事件,用来处理所有与通信相关的事件。使用事件程序的好处是不需要一直让程序处于检测的状态下,只要事先将程序代码写好,一有事件发生,就会直接执行相对应的程序代码。可见这种事件驱动的方式也为实现实时通信提供了必要的条件。上位机程序如图3所示。
PC机根据接收到的信息很容易的实现对每个开关量的状态进行识别,从而控制监控界面的实时显示。

图3 上位机程序流程图

5 结语 PLC
以上是基于S7-200PLC自由口通信方式实现与上位机PC实时通信的一个简单应用。经验证,该方法简单、实时性好,可靠性高,对于逻辑控制系统,是能够实现对被控对象实时监控简单易行的方法。


没有

联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com