精华内容
下载资源
问答
  • 2021-02-13 14:01:27

    简介

    LECPServer 全称 Leanboard Equipment Communication Proxy Server 是一款基于 JLean 框架开发的高性能工业用组态服务软件,可以通过该组态软件,链接市面上90%的PLC,通过HTTP协议通联PLC的读写,使用户能够通过一个直观的用户界面来连接、管理、监视和控制不同的自动化设备和软件应用程序。

    与 KepServer 不同 LECPServer 是通过WebAPI,与第三方设备进行读写控制,解决了OPCUA 协议对于服务器端编码的效率和难度,也就是说,即使你用 Javascript 、PHP这种没有OPCUA组件支持的平台,也可以很容易的进行设备端的读写,也同时意味着,即使直接通过浏览器,如Chrome、IE、编写简单代码,就能同步控制PLC的状态。

    使用说明

    而LECPServer的使用也非常简单,只有一个页面控制页面,直接上图:(具体的操作说明文档  http://www.lecpserver.com:3001

    LECPServer界面

    添加设备和设备节点操作方法也很简单,在设备菜单上添加新设备,然后在PLC_DRIVER选择松下类型的PLC,配置相关的参数,如IP地址,端口,在节点配置上添加新的PLC设备节点X0000,配置设备类型,点击应用即可。

    LECPServer添加松下PLC设备

    LECPServer添加松下PLC设备节点

    读写通讯也很简单,通过下面API命令来对设备点位进行读写。

    // 读PLC节点X0000状态
    {
        "action":"plc_read_node",
        "node":"NODES.PanMC.X0000"
    }
    
    // 写入PLC节点X0000状态为true
    {
        "action":"plc_write_node",
        "node":"NODES.PanMC.X0000", 
        "value":true
    }
    

    如下图,LECPServer也提供了调试工具,给用户进行简单的点位调试。

    LECPServer读写通讯

    系统性能

    官方也提供了 LECPServer 的性能测试,测试环境如下:

    1. CPU INTEL Core I7-1065G7 1.30Ghz处理器
    2. 16GB DDR4 内存
    3. SSD M2 磁盘
    4. Windows10 专业版 1909 64bit 操作系统
    5. 施耐德 TM200CE24R PLC

    50个读线程和50个写线程,对于plc_read_node和plc_write_node命令,针对单个读写返回时间在10ms-13ms

    50个读线程和50个写线程,对于plc_read_nodes和plc_write_nodes命令,一次控制4个节点,针对单个读写返回时间在20ms-24ms

    使用视频

    LECPServer连接并控制施耐德M200系列PLC [第一章] https://www.bilibili.com/video/BV1bK4y1Q7o8

    LECPServer连接并控制施耐德M200系列PLC [第二章] https://www.bilibili.com/video/BV1yA411T71C

     

    更多相关内容
  • LECPServer全称为Leanboard Equipment Communication Proxy Server是一种基于JLean框架开发的高级工业用布局服务软件,可以通过该布局软件,链接到城市表面的90%的PLC,通过HTTP协议通联PLC的识别,使用户能够通过...
  • LECPServer SCADA 是基于 LECPServer开发的SCADA软件,可以采集不同PLC的点位数据并在曲线图上进行展示,附件含代码。 LECPServer是由JLean开发的开源组态软件项目,可以对市面上所有的PLC进行快速高效的数据采集和...
  • Kepserver 的免费开源替代品, LECPServer使用手册,基于Javascript编写,通过http协议快速读写各种型号的PLC,最新使用手册可以到官网查阅 http://www.lecpserver.com,WCS SCADA MES与PLC读写通讯的利剑,可以...
  • Kepserver 的免费开源替代品, LECPServer使用手册,基于Javascript编写,通过http协议快速读写各种型号的PLC,最新使用手册可以到官网查阅 http://www.lecpserver.com
  • LECPServer是基于JLean开发的开源自动化组态软件,客户端可以通过http协议对市面上所有的plc进行读写控制。 https://github.com/xeden3/LECPServer 当然,你也可以通过js重新编码,做成自己的组态软件
  • 利用LECPServer快速5分钟开发一个免费的SCADA系统

    千次阅读 热门讨论 2021-03-27 09:15:56
    下载 LECPServer 我们需要在 LECPServer 官网或者Github页面上下载最新的LECPServer,下载尝试运行,如果能成功运行,就可以进入下一步了,如果运行不了,到官网阅读运行所需要下载和安装的Windows运行时,安装...

    SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具;传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库,最后通过C#或者VB编写的前端页面,对数据进行展示;稍微理想化的方式是通过组态软件,例如组态王,进行数据采集,然后再通过组态王的报表工具进行展示。

    这两组方案都有弊端,第一组方案,由于Labview自带的报表组件简直惨不忍睹,需要使用多个编程平台混合编程,包括Labview和C#等混合编写的方式,需要的开发周期和需要掌握的编程技巧,都是方案里面成本比较高的,而且由于是多个平台,因此运维成本也是最高的。

    第二组方案,使用组态王等第三方解决方案,虽然能达到要求,运维成本也比较低,但里面也有两个问题,一个是需要使用接口与展示端对接,整个沟通和调试成本无法做到一体化,其次是组态软件,基本都是需要授权的。

    这里介绍一种通过开源项目LECPServer快速打造一个免费的SCADA数据采集系统的方法,LECPServer是由纯HTML+JS编写的,因此可以天然的使用大量的JS报表工具和页面展示工具,这部分的工具,相较C#这种桌面系统,还是相当相当丰富的。

    看看国外老牌的d3js和国内最强的echarts,图表和报表的展示效果,那比C#自带的方案不是在同一个级别的。

             

    下面我们就来看看,怎么通过LECPServer在5分钟内如何搭建一个免费的数采系统。


    1. 下载 LECPServer 

    我们需要在 LECPServer 官网或者Github页面上下载最新的LECPServer,下载尝试运行,如果能成功运行,就可以进入下一步了,如果运行不了,到官网阅读运行所需要下载和安装的Windows运行时,安装完成后运行即可。

    这里传送门

    LECPServer Github Release  :https://github.com/xeden3/LECPServer/releases
    LECPServer 文档 :http://www.lecpserver.com:3001/#/
     

    2. 添加数采页面

    第二步开始进行页面编写,我们进入bs文件夹(最新的bs文件夹可以到Github上下载),bs文件夹内都是源码,其中目录 modules就是我们需要添加的页面模块。添加两个文件,一个是 scada.html 一个是 scada.js 

    我们选用  jQuery Sparklines 来动态展示两个PLC内32个点的温度变化折线图, jQuery Sparklines的大概展示demo如下

    接着我们需要修改scada.html和scada.js的代码。

    以下是scada.html的源代码:

    <!-- END PAGE BAR -->
    <!-- BEGIN PAGE TITLE-->
    <div name="main_page_scada">
        <h1 class="page-title"><span data-i18n="page_scada.title">SCADA Page</span>
            <small><span data-i18n="page_scada.subtitle">for LECPServer WebApi</span></small>
        </h1>
        <!-- END PAGE TITLE-->
        <!-- END PAGE HEADER-->
        <div class="row">
            <div class="col-md-12">
                <!-- BEGIN EXAMPLE TABLE PORTLET-->
                <div class="portlet light bordered">
                    <div class="portlet-title">
                        <div class="caption font-dark">
                            <i class="icon-settings font-dark"></i>
                            <span class="caption-subject bold uppercase">SCADA</span>
                        </div>
                        <div class="tools"> </div>
                    </div>
                    <div class="portlet-body">
                        <div class="row" name="lable_chart_show">
    
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    其次,修改page文件夹下的home.html页面,在360行添加以下代码:

    <li class="nav-item">
        <a href="javascript:;" class="nav-link nav-toggle" data-target="scada">
            <i class="fa fa-tv"></i>
            <span class="title" data-i18n="page_left_menu.scada">SCADA</span>
        </a>
    </li>

    打开界面后,你就可以看到这样的界面。

    3. 编写数采代码

    接下来我们开始编写js的实现代码,js的代码使用sparkline组件,定时500ms进行数采数据刷新。

    以下是scada.js的源代码:

    let m_temp_data = [];
    
    function init_page() {
        // 初始化页面
        let html = "";
        for (let i = 0; i < 32; i++) {
            html += '<div class="col-md-2"><span class="col-md-3" name="lable_' + i + '">00.0</span><span class="col-md-9" name="temp_' + i + '"></span></div>'
        }
        $("[name='lable_chart_show']").html(html);
    
        // 设置32个温度点
        for (let i = 0; i < 32; i++) {
            m_temp_data[i] = [0];
            $("[name='temp_" + i + "']").sparkline(m_temp_data[i], { type: 'line', height: '50', normalRangeMin: 0 });
        }
    
    }
    
    init_page();
    
    setInterval(function () {
        // 每500ms进行一次温度刷新
        for (let dev in g_plc_data['NODES']) {
            for (let node in g_plc_data['NODES'][dev]) {
                // 获取节点的值
                let v = g_plc_data['NODES'][dev][node]['value'];
                $("[name='lable_" + node + "']").html(v[0].toFixed(1));
                m_temp_data[parseInt(node)] = m_temp_data[parseInt(node)].slice(-20);
                m_temp_data[parseInt(node)].push(v[0])
            }
        }
        for (let i = 0; i < 32; i++) {
            // 分别刷新32个温度点的值
            $("[name='temp_" + i + "']").sparkline(m_temp_data[i], { type: 'line', height: '50', normalRangeMin: 0 });
        }
    }, 500);
    
    
    //# sourceURL=scada.js

     

    4. 配置PLC节点

    我们写完代码后,就可以给PLC添加设备和节点了,我们这次使用的是西门子S1500的PLC,连接了22个低精度的传感器,传感器对于的地址由M100到M2200

    配置页面如下:

    点击应用,这样就可以看到采样信息了,再点击到SCADA页面,我们可以看到效果如下:

    这样,我们就完成了一个免费的SCADA系统了。

    下面是500ms刷新一次的动图:

     

     

     

    展开全文
  • 下载 LECPServer 我们需要在 LECPServer 官网或者Github页面上下载最新的LECPServer,下载尝试运行,如果能成功运行,就可以进入下一步了,如果运行不了,到官网阅读运行所需要下载和安装的Windows运行时,安装...

    SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具;传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库,最后通过C#或者VB编写的前端页面,对数据进行展示;稍微理想化的方式是通过组态软件,例如组态王,进行数据采集,然后再通过组态王的报表工具进行展示。

    这两组方案都有弊端,第一组方案,由于Labview自带的报表组件简直惨不忍睹,需要使用多个编程平台混合编程,包括Labview和C#等混合编写的方式,需要的开发周期和需要掌握的编程技巧,都是方案里面成本比较高的,而且由于是多个平台,因此运维成本也是最高的。

    第二组方案,使用组态王等第三方解决方案,虽然能达到要求,运维成本也比较低,但里面也有两个问题,一个是需要使用接口与展示端对接,整个沟通和调试成本无法做到一体化,其次是组态软件,基本都是需要授权的。

    这里介绍一种通过开源项目LECPServer快速打造一个免费的SCADA数据采集系统的方法,LECPServer是由纯HTML+JS编写的,因此可以天然的使用大量的JS报表工具和页面展示工具,这部分的工具,相较C#这种桌面系统,还是相当相当丰富的。

    看看国外老牌的d3js和国内最强的echarts,图表和报表的展示效果,那比C#自带的方案不是在同一个级别的。

             

    下面我们就来看看,怎么通过LECPServer在5分钟内如何搭建一个免费的数采系统。


    1. 下载 LECPServer 

    我们需要在 LECPServer 官网或者Github页面上下载最新的LECPServer,下载尝试运行,如果能成功运行,就可以进入下一步了,如果运行不了,到官网阅读运行所需要下载和安装的Windows运行时,安装完成后运行即可。

    这里传送门

    LECPServer Github Release  :https://github.com/xeden3/LECPServer/releases
    LECPServer 文档 :http://www.lecpserver.com:3001/#/
     

    2. 添加数采页面

    第二步开始进行页面编写,我们进入bs文件夹(最新的bs文件夹可以到Github上下载),bs文件夹内都是源码,其中目录 modules就是我们需要添加的页面模块。添加两个文件,一个是 scada.html 一个是 scada.js 

    我们选用  jQuery Sparklines 来动态展示两个PLC内32个点的温度变化折线图, jQuery Sparklines的大概展示demo如下

    接着我们需要修改scada.html和scada.js的代码。

    以下是scada.html的源代码:

    <!-- END PAGE BAR -->
    <!-- BEGIN PAGE TITLE-->
    <div name="main_page_scada">
        <h1 class="page-title"><span data-i18n="page_scada.title">SCADA Page</span>
            <small><span data-i18n="page_scada.subtitle">for LECPServer WebApi</span></small>
        </h1>
        <!-- END PAGE TITLE-->
        <!-- END PAGE HEADER-->
        <div class="row">
            <div class="col-md-12">
                <!-- BEGIN EXAMPLE TABLE PORTLET-->
                <div class="portlet light bordered">
                    <div class="portlet-title">
                        <div class="caption font-dark">
                            <i class="icon-settings font-dark"></i>
                            <span class="caption-subject bold uppercase">SCADA</span>
                        </div>
                        <div class="tools"> </div>
                    </div>
                    <div class="portlet-body">
                        <div class="row" name="lable_chart_show">
    
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    其次,修改page文件夹下的home.html页面,在360行添加以下代码:

    <li class="nav-item">
        <a href="javascript:;" class="nav-link nav-toggle" data-target="scada">
            <i class="fa fa-tv"></i>
            <span class="title" data-i18n="page_left_menu.scada">SCADA</span>
        </a>
    </li>

    打开界面后,你就可以看到这样的界面。

    3. 编写数采代码

    接下来我们开始编写js的实现代码,js的代码使用sparkline组件,定时500ms进行数采数据刷新。

    以下是scada.js的源代码:

    let m_temp_data = [];
    
    function init_page() {
        // 初始化页面
        let html = "";
        for (let i = 0; i < 32; i++) {
            html += '<div class="col-md-2"><span class="col-md-3" name="lable_' + i + '">00.0</span><span class="col-md-9" name="temp_' + i + '"></span></div>'
        }
        $("[name='lable_chart_show']").html(html);
    
        // 设置32个温度点
        for (let i = 0; i < 32; i++) {
            m_temp_data[i] = [0];
            $("[name='temp_" + i + "']").sparkline(m_temp_data[i], { type: 'line', height: '50', normalRangeMin: 0 });
        }
    
    }
    
    init_page();
    
    setInterval(function () {
        // 每500ms进行一次温度刷新
        for (let dev in g_plc_data['NODES']) {
            for (let node in g_plc_data['NODES'][dev]) {
                // 获取节点的值
                let v = g_plc_data['NODES'][dev][node]['value'];
                $("[name='lable_" + node + "']").html(v[0].toFixed(1));
                m_temp_data[parseInt(node)] = m_temp_data[parseInt(node)].slice(-20);
                m_temp_data[parseInt(node)].push(v[0])
            }
        }
        for (let i = 0; i < 32; i++) {
            // 分别刷新32个温度点的值
            $("[name='temp_" + i + "']").sparkline(m_temp_data[i], { type: 'line', height: '50', normalRangeMin: 0 });
        }
    }, 500);
    
    
    //# sourceURL=scada.js

     

    4. 配置PLC节点

    我们写完代码后,就可以给PLC添加设备和节点了,我们这次使用的是西门子S1500的PLC,连接了22个低精度的传感器,传感器对于的地址由M100到M2200

    配置页面如下:

    点击应用,这样就可以看到采样信息了,再点击到SCADA页面,我们可以看到效果如下:

    这样,我们就完成了一个免费的SCADA系统了。

    下面是500ms刷新一次的动图:

     

     

    展开全文
  • 前言:LECPServer最新版本支持通过MQTT网关,将PLC的状态信息发布给其他上位系统,如MES,HIM,SCADA等系统,并对信息进行采集和二次加工。 在现代工业现场中,会大量的使用MQTT协议,将现场PLC设备(如欧姆龙,...

    前言:LECPServer最新版本支持通过MQTT网关,将PLC的状态信息发布给其他上位系统,如MES,HIM,SCADA等系统,并对信息进行采集和二次加工。

    在现代工业现场中,会大量的使用MQTT协议,将现场PLC设备(如欧姆龙,三菱,西门子,施耐德等PLC)的状态,收集到MES、HIM、SCADA系统上,但目前支持独立的MQTT客户端的PLC价格昂贵,而且大部分都不支持。因此有人提供了两组不同的方案

    1. 外接硬件的解决方案,即在PLC的串口或者网口上添加一个MQTT客户端网关。这种解决方案需要每台PLC都需要追加硬件和独立配置。
       
    2. 通过软件进行信息转载,如 KepServer 就是这种方案的翘楚,现场只需要架设一台服务器,通过KepServer与PLC设备连接(可以使用RS232/485、以太网等方式),获取到PLC信息后,通过KepServer内置的MQTT客户端,将信息发布到MQTT Broker上。

    LECPServer使用的就是第二种方案。

    LECPServer对于PLC的连接和配置,这里就不再赘述了,需要的小伙伴可以到这里阅读。

    Kepware KepServer的完美替代者,免费开源项目 LECPServer 使用指南_JamesChan的专栏-CSDN博客_lecpserver

    这里陈述下LECPServer关于MQTT的配置方法

    LECPServer 提供了两个MQTT的支持:

    1. MQTT Broker(MQTT服务端),可以通过配置mqtt.conf文件启动或者关闭
    2. MQTT Client(MQTT客户端),通过页面配置,可以进行对节点信息的发布,使到对应的订阅者能收到最新的节点状态信息

    如何配置 MQTT Broker

    配置MQTT Broker非常简单,只需要打开mqtt.conf文件 其中

        "MQTTSERVER": {
            "PORT": 1883,
            "START": false
        }

    为MQTT Broker的配置,PORT是Broker需要打开的端口,START如果是true,则启动Broker,否则则不启动Broker

    用户可以使用LECPServer自带的Broker,也可以使用第三方的Broker进行信息的发布

    如何配置 MQTT Client

    点开配置页面,我们就可以对MQTT进行配置了。

    1. 点击"设备"栏,的"新加设备"选项,新增一个MQTT设备
    2. 填写MQTT客户端名称,这时候,名称不可重复
    3. 点击"确认,添加",新加设备完毕
    4. 配置MQTT客户端,IP,PORT对应Broker的地址和端口,Client_ID 是客户端ID,可不填,TOPIC是需要发布的主题名称,其他客户端可通过该Topic来订阅信息
    5. SCAN_RATE,为巡检节点时间,单位ms,默认为1000ms,每巡检一遍,触发一次设备节点的发布
    6. 配置好必要信息后,点击“应用”按键,即可连上Broker

     

     如何配置 MQTT Client 节点

    接下来我们就可以通过配置节点,让MQTT Client实现信息发布

    1. 点击节点配置里面的“添加”按键
    2. 选择需要添加的节点,选择完成后点击“应用”
    3. 这时候添加的节点就会以每次巡检间隔发布一次给Broker

     

     我们使用HSL来做MQTT Broker来演示一遍最终效果,下面是GIF动图

    展开全文
  • LECPServer A faster and more concise open source PLC communication middleware than kepserver LECPServer 全称 Leanboard Equipment Communication Proxy Server 是一款基于 JLean 框架开发的高性能工业用组态...
  • LECPServer 全称 Leanboard Equipment Communication Proxy Server 是一款基于 JLean 框架开发的高性能工业用组态服务软件,可以通过该组态软件,链接市面上90%的PLC,通过HTTP协议通联PLC的读写,使用户能够通过一...
  • 下载软件以后没有BS文件夹,只有一个bs.zip文件,解压时提示有解压密码。不知道如何操作了。
  • Kepserver与ABPLC通讯

    2018-07-11 09:08:37
    本pdf是描述如何使用当前流行的OPCUA server的工具去连接真实AB PLC的过程,step by step的介绍流程并图文并茂,深刻形象的描述整个操作过程,让操作者一目了然,是实操不可多得的指导手册
  • 之前在文章《JavaScript如何对欧姆龙、三菱、施耐德等PLC进行读写通讯控制》有介绍,如何通过 LECPServer + Javascript 对欧姆龙,三菱,施耐德等PLC进行通讯控制。 在实际使用中,发现LECPServer与西门子的PLC进行...
  • PHP如何与PLC进行通讯

    千次阅读 热门讨论 2021-02-16 12:14:06
    双击 LECPServer.exe 就可以启动程序了 使用样例 我们以连接 欧姆龙 CP1H 的PLC为例子,演示怎么通过LECPServer与欧姆龙CP1H进行通讯。 基础配置 我们通过以太网连接欧姆龙CP1H,PLC的IP设置为192.168.3.20,本机IP...
  • 配置说明 LECPServer的使用和配置还是比较简单的 首先是LECPServer的运行环境,.NET和VC2013是必须前置安装的 Microsoft .NET Framework 4.6.1 Download .NET Framework 4.6.1 Web Installer Visual C++ ...
  • 介绍了三种plc产品的编程区别,及一些plc试训,很全很好。。
  • C# 开源组态

    2018-01-04 10:14:38
    C# 工控类开源组态软件,涉及到西门子、modbus rtu、TCP等通讯驱动
  • SCADA源码,C#实现

    热门讨论 2012-11-17 10:38:32
    很好的SCADA源码,用C#实现。对于你有很高的参考价值.
  • @Controller @RequestMapping(value = "/api/w/zjsky/training") public class TrainingApiController extends BaseController { private final static Logger logger = LoggerFactory.getLogger...
  • MQTT 协议在物联网,小型设备场景,移动应用等方面已经有了广泛的应用,并逐渐成为了物联网通讯的标准。本文重点介绍了组建 MQTT Broker 集群的挑战及负载均衡在 MQTT 集群中所起的作用。 MQTT 协议 ...
  • browser/server具有分布性特点,可以随时随地进行业务处理。业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只需要改变网页,即可实现所有用户的同步更新。开发简单,共享性强。...
  • client 在可以发布和订阅消息之前,必须先连接到 broker,下面我们来看一下连接到 broker 的流程。 1 Client 连接到 Broker 的流程 2 CONNECT 连接的建立由 Client 端发起,Client 端首先向 broker 发送一个 ...
  • 引言 上一次,我已经教大家如何通过wampserver集成环境搭建一个局域网内设备均可以访问的本地服务器,以及如何利用在wampserver集成环境下的PHPMyadmin创建可远程访问mysql数据库权限的用户。小伙伴们学会了吗?...
  • OPC错误代码,还有点用

    热门讨论 2010-01-03 11:12:03
    自己在学习OPC过程中,经常对返回的错误代码感到很迷茫。在网上找到一个pdf版的。
  • c# 使用TCP连接(server)

    千次阅读 2017-07-05 14:18:00
    效果图 代码实现 用的变量: 1 Thread threadWatch = null; //负责监听客户端的线程 2 Socket socketWatch = null; //负责监听客户端的套接字 3 //创建一个负责和客户端通信的套接字... socConnections = n...
  • facebook-three20-1.0.11

    2012-10-21 14:18:52
    Three20 is an Objective-C library for iPhone developers
  • 国外工业组态软件源代码

    热门讨论 2009-03-06 16:31:14
    国外工业组态软件源代码,可做为开发组态软件的参考
  • 由于PHP没有PLC读写的接口,通过LECPServer替代KEPServer,PHP通过LECPServer与PLC通讯的样例,具体使用方法可参阅笔者文档 https://blog.csdn.net/Xeden/article/details/113823705 需要下载LECPServer作为中间件...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

lecpserver