• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 农林牧渔 > 正文

    在Labview环境下利用PRODAVE实现PC与PLC数据通信

    时间:2020-09-14 07:56:15 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:文章介绍了PC和PLC通信的硬件连接和软件实现。虚拟仪器开发平台LabVIEW开发测控程序,具有界面友好,人机交互方便,开发效率高等特点,而且通过调用PRODAVES7软件包的动态链接库实现PC机对PLC数据的读写操作,不但数据传输速度快,而且数据传输正确率高。

    关键词:PLC;LabVIEW;PRODAVE;数据通信;适配器连接

    中图分类号:TP273文献标识码:A

    文章编号:1009-2374(2010)25-0091-03

    0引言

    PLC具有极高的可靠性,一般用来执行现场的控制任务,但是它的人机接口功能较差。PLC与个人计算机(PC)通过通信连接起来,用PC作为上位计算机,实现系统的监控、人机接口和与上一级网络(例如工业以太网)的通信等功能,可以使二者的优势互补,组成一个功能强、可靠性高、成本低的控制系统。因此在工业控制系统中,PC与PLC之间的通信是最常见的和最重要的通信之一。

    1PLC与PC的硬件连接

    在此以SIMATICCPU314C-2DP为例来讲。SIMATICCPU314C-2DP有两个接口:一个是MPI/DP,通过MPI,PLC可以同时与多个设备建立通信连接,可以连接的设备包括编程器或运行STEP7的计算机、人机界面(HMI)及其它SIMATICS7,M7和C7;另一个接口为DP口,可以通过该接口将PLC接入PROFIBUS现场总线网络中,PROFIBUS-DP的传输速率最高为12Mbit/s。

    PC机与CPU314C-2DP的连接可以有两种:

    1.1通过PC/MPI适配器连接

    S7-300/400的MPI(多点通信接口)和S7-200的PPI(点对点通信接口)用于西门子公司控制产品之间的通信,例如安装在PC上的STEP7编程软件与PLC之间的通信,但是这些通信协议均为公开。如果用S7-300/400点对点通信协议实现PC与PLC之间的通信,需要配置专用的通信处理器模块或带点对点通信接口的CPU31x-2PtP。其点对点通信协议并不通用,要花较多的时间熟悉它,才能编出PLC和计算机的通信程序。

    PRODAVE是用于PC与S7系列PLC之间的数据连接通信的工具箱。PRODAVE是“ProcessDataTraffic”(过程数据交换)的缩写,可以用于S7-200、S7-300/400、M7和C7等西门子的S7系列PLC。通过下列硬件,可以方便地在PLC与PC之间建立数据连接:

    用于PC的MPI通信处理器,例如CP5511、CP5611和CP5612,通信速率可达12Mbit/s;

    用于S7-300/400的PC/MPI适配器(PC-Adaptor);

    用于S7-200的PC/PPI电缆。

    对于S7-300,第一种方式需要用到通讯卡CP5511/5611/5512,而第二种方式除了PC机和PLC硬件外,只用到了程序下载电缆PC/MPI适配器,而下载电缆是PLC编程所必须用的,在此又可以用到PC机和PLC的通讯上。

    用户在安装了PRODAVE软件包后,需要配置PG-PC(PG是编程器的缩写)的接口参数,对硬件进行配置,使用PC/MPI适配器时,配置步骤如下:

    在桌面执行菜单命令“开始”→“程序”→“PRODAVE_S7”→“PG-PC Interface”打开接口参数配置对话框(见图2)。

    在“Interface Parameter Assignment”(接口参数配置)列表框中如果没有实际使用的硬件接口,点击右下方的【Select】按钮,打开“Installing/Uninstalling Interfaces”对话框,安装实际使用的硬件接口的驱动程序。

    在图3中选中接口参数配置列表框中的“PCAdapter(MPI)”,在上面的“Access Pointofthe Application”(应用程序访问点)列表框内选择“S7ONLINE(STEP7)”。

    点击【Properties…】(属性)对话框,打开属性对话框。将“MPI”栏中的“Transmission Rate”(传输速率)设置为187.5kbit/s,其他参数可以采用默认的设置。在“Local Connection”选项卡的“COMPort”选择框中设置实际使用的PC串口的编号,传输速率可以设置为19.2kbit/s。

    点击【OK】按钮,完成设置。

    1.2通过PROFIBUS总线

    如图4所示:

    但是这种方法需要Profibus总线和硬件通信处理器,占用很大的硬件资源。

    2PC机与PLC通信软件实现

    2.1PRODAVE通信软件

    PRODAVE的动态链接库(DLL)提供了大量的基于Windows操作系统的DLL函数,供用户解决PLC与PC之间的数据交换和数据处理问题,可以在LabVIEW编程环境中调用这些函数。PRODAVE有以下特点:

    (1)使用简单方便,编程人员不需要熟悉复杂的通信协议,通过调用PRODAVE提供的动态连接库(DLL)中的函数就可以实现通信。

    (2)上位机用通信函数直接读写PLC中的数据,用户不用编写PLC一侧的通信程序。

    (3)如果使用PC/PPI适配器或用于PC的通信处理器作通信接口,它们同时还可以兼作编程软件与PLC的通信接口。

    Windows环境中的西门子公司的PRODAVE工具箱有PRODAVE S7(完全版)和PRODAVE S7 mini(简化版)两种,PRODAVE S7(完全版)功能比较全面,可按位或者字节读写PLC中的输入过程映像区、输出过程映像区、位存储区、定时器、计数器、数据块等区域,PRODAVE S7 mini(简化版)则只能读写DB中的字和字节。

    PRODAVE中有两个已经编译好的DLL文件:W95_S7.DLL包含PRODAVE的一些基本通信函数和电话服务函数(TeleService Function),电话服务函数是PRODAVE的扩展功能,允许S7控制器与公众电话网连接,但这种功能需要安装SIMATIC TeleService SW-Option package才能实现;KOMFORT.DLL包含一些增强型函数,用于PC中用户数据的转换和处理,与PC与PLC之间的通信没有直接关系。

    2.2PLC控制程序调试软件用到的PRODAVE函数

    (1)load_tool用于PC机与PLC系统初始化链接;

    函数原型为:

    intload_tool(char,char*device,char*adr_table);

    此函数传送以下3个参数:

    :PC要激活的连接的个数(1~32个),此系统=1;

    device:是用户驱动设备的名称,对于MPI驱动器,dev为“S7ONLINE”;

    adr_table:连接的地址列表。

    load_tool初始化适配器,检查是否已装载驱动器,初始化连接的地址,激活选定的接口。

    如果没有错误,此函数返回0,否则返回错误信息的相应l6进制代码。

    (2)unload_tool断开PC机与PLC系统链接;

    函数原型:intunload_tool(void);

    如果没有错误,此函数返回0,否则返回错误信息的相应l6进制代码。

    (3)db_read从PLC的DB块中读数据字,在下面的库函数调用中有介绍;

    (4)db_write向PLC的DB块中写数据字,函数参数与db_read类似。

    在通信开始之前,首先用load_tool函数建立上位机与PLC的连接,通信结束时必须用unload_tool函数断开PC与PLC的连接,否则可能引起上位机死机,或者造成上位机系统的异常状况。

    2.3 在LabVIEW中,可以有两种方法利用PRODAVE与PLC通信

    (1)库函数调用。DLL是建立在客户端/服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据被存储在一个DLL服务器上,并有一或多个客户导出使用,这些客户可以是应用程序,或者是其它的DLL。DLL库不同于静态库。在静态库情况下,函数和数据被编译进一个二进制文件(通常扩展名为.LIB),对VisualC++的编译器,它在处理程序代码时将从静态库中恢复这些函数和数据,并把它们和应用程序中的其它模块组合在一起,生成可执行文件,这个过程称为“静态连接”,此时,因为应用程序所需的全部内容都是从库中复制出来的,所以静态库本身并不需要与可执行文件一起发行。

    在动态链接库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含从DLL导出的函数名称和位置,DLL包含实际的函数和数据。应用程序使用LIB文件连接到所需使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此,在应用程序的可执行文件中,存放的不是被调用的函数代码,而是在DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行时,再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。

    LabVIEW中动态链接库的调用是通过CIF(CallLibraryFunction)节点实现的,CLF节点位于LabVIEW功能模板中的Advanced子模板中。

    单击Advanced子模板中的CLF节点的图标,将CLF节点的图标放至LabVIEW框图程序中,此时的CLF节点没有任何用处,必须对它进行配置以后才能使用。

    在LabVIEW中调用库函数的关键是要了解被调用的函数名称,功能及其输入输出参数。

    下面以调用动态链接库W95_S7.DLL中的db_read从PLC的DB块中读数据字为例讲一下如何使用CLF节点。

    第一步:在CLF节点的右键菜单中选择“Configure…”,弹出CLF节点配置对话框,利用配置对话框可以实现CLF节点对动态链接库的调用。如图4所示:

    第二步:点击“Browse…”按钮,在随后弹出的选择DLL文件对话框中找到W95_S7.DLL(C:\Windows\System32\W95_S7.DLL)文件,单击“打开按钮”,此时,LabVIEW就会自动装载选定的DLL文件,并且检测DLL文件中所包含的函数。但是LabVIEW不会自动检测函数中的参数和参数的数据类型,这需要根据函数的输入、输出参数手动设置。

    动态链接库W95_S7.DLL中包含db_read函数,其功能是从PLC的DB块中读数据字,其函数原型为:

    intdb_read(intdbno,intdwno,int*amount,void*buffer);

    dbno:要读取的PLC的数据块。

    dwno:读取开始地址。

    amount:要读的数据字字数。

    buffer:要存放的缓冲区。

    读取PLC数据块dbno中从地址dwno开始的amount个数据字,存放在缓冲区buffer中。如果没有错误,返回值为零,如果有错误则返回一个非零的错误数字,可以通过错误信息函数error_message给出错误信息文本。

    第三步:在Function Name下拉列表框中选择db_read,在FunctionName下拉列表框右侧的下拉列表框中选择RunInVIThread。

    第四步:在Calling Conventions下拉列表框中选择C。

    第五步:设置db_read函数的返回参数。

    在Parameter中选择returntype,同时在Type下拉列表框中选择Numeric,在随后出现的Datatype下拉列表框中选择Unsigned32-bitInteger。这是因为db_read函数的返回值是一个整数。

    第六步:根据db_read函数原型,设置db_read函数的输入dbno,dwno,amount和buffer。

    点击AddaParameterAfter按钮,就可以添加新的输入参数,表1给出了参数的相关设置:

    表1db_read函数的参数设置

    ParameterTypeDataTypePass

    dbnoNumericUnsigned32-bitIntegerValue

    dwnoNumericUnsigned32-bitIntegerValue

    amountNumericUnsigned32-bitIntegerValue

    BufferArrayUnsigned32-bitIntegerValue

    配置完成的CLF节点的配置对话框如图5所示。

    配置完成后单击“OK”按钮,CLF节点配置对话框消失,此时CLF节点变成如图6所示的图标。

    (2)利用CIN节点。在LabVIEW中,除了可以通过动态链接库的方式实现与其它高级语言接口之外,还可以通过Advanced功能子模板中的CIN节点来实现与C语言的直接接口。

    CIN与LabVIEW的其它节点类似,是通过输入、输出端口来实现两种语言之间的数据和参数的传递的。当LabVIEW执行到CIN节点时,通过CIN的输入端口获取数据和参数。然后传递给C语言代码,转去执行CIN节点之后的G语言程序。

    3结语

    针对以上的研究工作,还可以做进一步的研究,例如通过PRODAVE,LabVIEW有两种方法可以实现与PLC的通信,作者只研究了一种方法,另一种还有待研究;LabVIEW和PLC通信还有其它的方法需要研究等。

    参考文献

    [1] 刘振东,梁秀满.西门子S7—300/400PLC与VB的通信方法[J].微计算机信息,2006,22(1).

    [2] 廖常初.S7-300/400PLC应用技术[M].北京:机械工业出版社,2005.

    [3] 李红梁.基于OPC的PC与PLC实时通讯的LabVIEW实现[J].计算机应用研究,2003,(12).

    [4] 张凯,等.LabVIEW虚拟仪器工程设计与开发[M].北京:国防工业出版社,2004.

    作者简介:杨艳霞(1982-),女,河南周口人,西安工业大学北方信息工程学院助教,硕士,研究方向:电子通信。

    相关热词搜索: 数据通信 利用 环境 Labview PLC

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网