全国服务热线 15221406036

西门子S7-200模拟量模块6ES7231-7PB22-0XA8

发布:2023-03-27 16:32,更新:2024-05-05 07:10

西门子S7-200模拟量模块6ES7231-7PB22-0XA8

1、前言
    可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数和算术操作等面向用户的指令,并通过数字式或模拟式输入输出控制各种类型的机械的生产过程。可编程控制器及其有关外部设备,都按易于与工业控制系统联成一个整体、易于扩充其功能的原则设计。早期的plc以数字量的顺序控制为主,提供了简单的慢速的通信功能(只支持RS232、RS485、多采用Modbus协议),现在的PLC不仅具有逻辑运算、顺序控制、定时、计数和算术操作,而且还具有A / D、D / A转换,数值计算和数据处理等功能。它既可以对开关量进行控制,也可以对模拟量进行控制,随着PLC功能不断扩充,它还有通讯联网功能,举例C200HX / HG / HE的OMRON PLC的CPU内的RS - 232C端口和外设端口支持通信功能就有与编程设备(如编程器,LSS,或SSS (中文版))进行通信、与个人计算机和其它外设进行上位机链接通信、与个人计算机和其它外设进行RS - 232C、与其它PC进行1:1、再有是与装有NT链接接口的可编程终端(PT)进行NT链接通信(1:1、1:N),本课题就是基于OMRON PLC的链接通信(有通信协议),用VC++开发的上位机与PLC间的通信。   
2、OMRON PLC的通信协议
    目前,随着PLC的快速发展,越来越多的PLC生产厂商开发了它与计算机的通信功能(主要是利用计算机串口进行通信),本文是以C200HE PLC为例,作详细阐述,本文的通信协议采用的是上位机链接通信。上位机链接通信通过在上位机与PLC之间交换命令和应答实现的。在一次交换中传输的命令和应答数据称为一帧,一个帧*多可包含131个数据字符。 
    命令帧格式 
    从上位机发送一个命令时,按下示的格式排列命令数据

@符号必须置于每个命令的开头,节点号是用来辨识每一台PLC的节点,在本文中,它设置PLC的DM6558单元中,识别码设置两字符的命令代码,设置通信是读写PLC的哪个寄存器单元,例读写IR / SR区时它的识别码设置分别为RR和WR,读写DM区分别为RD和WD。正文设置命令参数,包括所要读写PLC寄存器单元的起始地址和字数。FCS是设置两字符的帧检查顺序码,是一个转换成2个ASCII字符的8位数据,这8位数据为从帧开始到正文结束(即FCS之前)所有数据执行“异或”操作的结果。终止符设置“*”和回车(CH R $(13))两字符,表示命令结束。命令帧可以有*多131个字符长。一个等于或大于132字符的命令必须分成若干帧。命令分段,使用回车定界符(CH R $(13))。 
    应答帧格式

识别码和正文取决于接收到的上位机联结命令,结束码表示命令完成的状态(即是否有错误发生),当应答超过132字符,它必须分成若干帧。结束码是应答帧中表示PLC应答的信息。例结束代码为00表示正常结束,13表示FCS错误,14表示格式错误,15表示入口码数据错误,18表示帧长度错误,A3表示传输数据时因FCS错误引起终止,A8表示传输数据时因帧长度错误引起终止。 
    本文的上位机命令帧包括读写PLC单元中的数据的命令。读命令帧为:@01RR0100000141* + CH R $(13),意思是上位机读取节点为1的PLC中的IR0100单元中的内容。写命令帧为:@01WR0100000171* + CH R $(13),意思是写一个数到节点为1的PLC的IR0100单元中。 
3、系统结构图
    下图是计算机与PLC通信的组成系统图

上位计算机与多个PLC进行通信,必须连接一个RS232 / 422电平转换器,RS422采用平衡发送接收方式,它具有传输距离长、抗干扰能力强和多点通信能力,*多可以接32台PLC,如图1所示,每一台PLC都必须挂一个COM06单元进行RS422方式连接,所有的PLC与计算机间的通讯采用的是PLC上位机链接通信协议。
3.1 硬件设置 
    RS232 / 422转换器的设置开关拨到422方式,OMRON PLC上的COM06通信板单元同样设置为422方式和四线制。 
3.2 参数设置 
    上下位机的通信波特率设置为9600,数据格式设置为E,7,2。 
3.3 节点设置 
    在PLC的DC6558单元中设置节点号00(初始值)~ 31(号机)。 
4、用Visual C++6.0编写串行通信程序
    本文的上位机链接通信程序是用Visual C++6.0编写的,主要是利用VC++中的一个通信控件来实现的。 
    首先利用MFC AppWizard ( exe ) 建立一个基于对话框,支持Activex控件,命名为Transcomn的应用程序。然后在对话框中加入一些控件,其中那个电话形状的控件必须是在系统中注册过的Microsoft Communications Control,由它进行通讯时首先得设置它的一些属性如下。

属  性     设 定 值           说         明
CommPort       1          通讯协议为 PLC 上位机链接
                          通信,利用微机的串口1
InputMode      0           接收数据类型为文本形式
Rthreshold     1          每接收一个字符就产生一个事件
Settings   9600, E, 7, 2      参数依次为波特率、
                               奇偶检验数据位数、停止位数

5、程序编写
    在程序中需添加的代码如下: 
    // TranscommDlg.cpp:implementation file 
    BOOL CTranscommDlg::OnInitDialog () 
    { 
    *后要在ClassWizard中添加变量和响应函数如下。

    控制名称         控制 ID对          应变量或函数
通讯地址文本框     ID - ADDRESS           m_address
 DM 区文本框         ID - DM              m_dmbox
 LR 区文本框         ID - LR              m_lrbox
 HR 区文本框         ID - HR              m_hrbox
 IR 区文本框         ID - IR              m_irbox
 应答帧文本框      ID - RESPONSE          m_response
   通讯控件         ID - MSCOMM           M - comm.
 发送命令按钮        ID - SEND            OnSend ( )

// TODO:Add extra initialization here 
    // 打开通信端口1 
    m_comm..SetCommPort&n

本文详细阐述了PC与plc互连通信的一般方法,并以永宏公司的FATEK-FBS  PLC为对象,以实际四层电梯模型监控系统为例,介绍了利用大家都熟悉的编程语言Visual Basic 和Step7,实现PLC与上位计算机实时通信的通信过程。

1  通信方式

    面对众多生产厂家的各种类型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之间的实时通信是非常必要的。

2  FATEK-FBS  PLC通信方式及原理

    FATEK-FBS  PLC内部集成的PPI接口为用户提供了强大的通信功能,可在多种模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通信方式*具有特色,通信协议可完全由梯形图程序控制,通过它可以实现PLC与任何具有通信能力的设备进行互连,因而在本系统中选用自由口通信方式。

    目前PLC与PC机的链接通信有两种方式,一种是PC机始终处于主导地位,数据的传送都由PC机定时发出命令,另外一种是PLC始终具有优先权。在本电梯模型监控系统中所有的控制信号均为开关量信号,考虑到上位PC机仅实时显示电梯的运行状态,不需向PLC发送控制指令,采用第二种通信方式。利用PLC循环扫描的特点,设备状态一旦改变,PLC立即检测到,并将反映系统状态变化的数据存入指定的数据缓冲区,通过XMT发送指令,将数据通过COM口发至上位机。每个系统的状态对应于数据缓冲区中的一个指定字节,所存储数据均为16进制数据,为保证通信过程的可靠性,上位机对所接受到的数据进行首尾字符校验,如果校验成功,则说明接收到的首末字节之间的数据是正确的,从而进行处理,否则,放弃这批数据,要求对方重发。

3  应用实例与程序设计

(1)  系统构成

    FATEK-FBS  PLC内部集成的PPI接口物理特性为RS485,而上位机的标准串口为RS232,为了实现两者的通信必须进行协议转换,永宏公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此再不增加任何硬件的情况下,可以方便的实现二者的互联和协议转换。

作为控制器的FATEK-FBS  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/从站模式。

②  FATEK-FBS PLC实时向上位PC机传送数据


图2  下位机程序流程图

    在对电梯模型控制中,所有的控制信号均为开关量,基于这一特点,系统状态的改变即为这些开关量信号状态的改变,因此可通过跟踪这些开关量信号的上升沿信号、下降沿信号的到来,做为系统状态改变的依据。据此在本系统中,通过对同一个开关量信号的上升沿、下降沿分别定义不同的16进制数的方式,来代表信号的产生与结束,当检测到这些信号产生时,便将这些数据存入指定的数据缓冲区中的字节中,并通过COM口发至上位PC机,同时产生发送完成中断,PLC延迟等待接收来自上位机的应答信号,通过分析存储在接收字符缓冲器SMB2中的数据,判断是否需要重新发送。下位机程序如图2所示。

(3)  上位机部分编程

    基于VB处理监控界面图形、数据报表及通信的方便快捷,本课题上位机的编程环境采用VB来实现。VB不仅提供了MSCOMM串行通信控件,而且也为这个控件提供了标准的事件处理函数,并通过设置它的一些属性对通信接口进行初始化,从而很容易的实现了串行通信的问题。

下面介绍一下有关此控件的属性:

    Commport,设置通信连接端口。程序必须指定要使用的串行端口的号码,WINOOWs使用所设置的通信端口与外界进行通信。

    Settings,设置初始化参数。其格式为“BBBB,P,D,S”,其中BBBB为连接速度,P为奇偶校验方式,D为数据位数,S为停止位数。默认值是“9 600,n,8,1”。

    PortOpen,设置通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开。

    Input,返回并删除接收缓冲区中的数据流。

    InputLen,设置从串行端口读入的字符串长度。

    Rthreshold,设置引发接收事件的字符数。

    InputMode,设置接收数据数据形式。

    OnComm事件,用来处理所有与通信相关的事件。使用事件程序的好处是不需要一直让程序处于检测的状态下,只要事先将程序代码写好,一有事件发生,就会直接执行相对应的程序代码。可见这种事件驱动的方式也为实现实时通信提供了必要的条件。上位机程序如图3所示。PC机根据接收到的信息很容易的实现对每个开关量的状态进行识别,从而控制监控界面的实时显示。

图3  上位机程序流程图

4  结语

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


联系方式

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