zoukankan      html  css  js  c++  java
  • 基于KEPWare实现PLC与MES的握手通讯以及简单逻辑处理

    一、场景

    在生产现场经常会有这样的场景,下位机PLC需要将一些数据上传给上位机或者MES,通常就是将一些数据存储到数据库。

    面对此场景的业务需求,使用KEPWare的ODBC Clint、Link Tag的功能来实现。

    其常见的信号交互流程如下图所示。

    二、步骤

    步骤一:

              在数据库中建立用来存储PLC相关数据的Table,表如下所示。

         

       说明:1、ID为自增长列。CreateTime默认值为getdate(),即每次新建数据时,CreateTime默认是以当时本地的时间来记录。

                  2、Table的名称为TestTable。

    步骤二:

               创建一个往TestTable中插入一行记录的存储过程。

    USE [TESTDB]
    GO
    /****** Object:  StoredProcedure [dbo].[INSERT_TESTTAB]    Script Date: 2019/6/12 14:54:03 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[INSERT_TESTTAB]
        -- Add the parameters for the stored procedure here
        @p1 int,
        @p2 int,
        @p3 int output  
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
    
        -- Insert statements for procedure here
        INSERT INTO [TESTDB].[dbo].[TestTable] (VALUE1,VALUE2) VALUES(@p1,@p2) ;
        set @p3=1;
        return 1;
    END

          说明:1、输入参数p1、p2对应着需要插入到TestTable中的Value1、Value2

                     2、输出参数p3用来获取执行结果(为什么不适用返回值来作为执行结果呢?后面会有说明)

    步骤三:

           在KEPWare中创建模拟PLC数据的Tag(如果有实物PLC可以直接配置实物的PLC驱动来进行)

    a、新建Channel的时候Driver选择Simulator的驱动,此驱动可以完成数据的模拟。 

             

    b、新建4个Tag。

           

     步骤四:

              a、在KEPWare中新建ODBC Client,来连接数据库。(具体的操作细节可以百度 KEPWare ODBC)

              b、在Access method selection中选择Stored Procedure

             

             c、在Stored Procedure selection中选择刚刚创建的名称为INSERT_TESTTAB的存储过程。

             

           d、配置完成KEPWare会自动生成Tag。

           

    说明:1、Execute:每次写完成的时候,Execute stored procedure (on write complete).都会执行,而不是从flase变为true执行这点需要特别注意。

               2、input_p1、input_p2对应着存储过程p1、p2的输入参数,input_output_p3为p3的输出参数。

               3、output_RETURN_VALUE对应着存储过程的返回值。注意output_RETURN_VALUE为只读的Tag。

    步骤五:

            在KEPWare中新建Link Tag将ODBC Client的Tag和模拟PLC的Tag关联。

       

     

        

    三、测试

         按上述流程图进行测试。

    将1写入到Value1、1写入到Value2,然后将Request置位,然后执行完存储过程,Response会被置1。结果在数据库中成功插入了一条数据,如下所示。

  • 相关阅读:
    div拖拽缩放jquery插件编写——带8个控制点
    vuejs快速入门
    逗号运算笔记
    怎样用PHP制作验证码呢?
    mac下多个php版本快速切换的方法是怎么样
    HTML5 拖拽复制功能的实现方法
    CentOS下使用Percona XtraBackup对MySQL5.6数据库innodb和myisam的方法
    MySQL数据很大的时候
    Facebook MyRocks at MariaDB
    Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
  • 原文地址:https://www.cnblogs.com/cherish836138981/p/11005134.html
Copyright © 2011-2022 走看看