首页 > 编程语言 >记录协助Javaer硬件快速开发过程之Web技术栈对接施耐德网络IO网关

记录协助Javaer硬件快速开发过程之Web技术栈对接施耐德网络IO网关

时间:2024-04-13 11:44:05浏览次数:35  
标签:function 施耐德 网关 weight Web startAddress ar var data

前一段时间有个Java技术栈的朋友联系到我,需要快速对接现有的无人值守称重系统,这里的对接是指替代现有系统,而非软件层面的对接,也就是利用现有的硬件开发一套替代现有软件的自动化系统。主要设备包括地磅秤、道闸、红外对射传感器、摄像头、小票打印、LED显示屏等等,全程使用LED显示屏提示人员当前的操作状态。

 

业务流程:

①摄像头识别车牌号

②开启前入磅道闸

③红外监测是否抵达称重区域

④采集地磅重量,自动判断仪表读数稳定

⑤摄像头抓拍现场图像,同时并发采集多路摄像头形成现场档案

⑥数据打包上传到MES系统

⑦打印小票

⑧开启后出磅道闸

这位同学基于java技术栈研究了一段时间进展较慢,应该是通过园子联系到我。我们简单沟通了一下,确定使用IoTBrowser来开发,虽然前期没有界面的展示需求,但是保留了UI控制的扩展性,最主要是用html+js开发起来简单、高效。我这边提供硬件层的驱动和js接口,他来实现上层业务逻辑控制。

因为目前项目处于前期技术验证阶段,所以前期拿了2款硬件进行测试。第一款是地磅秤,据了解地磅秤仪表使用耀华A9,IoTBrowser已经自带实现,js示例也提供了不需要二次开发。第二个就是控制道闸的开启与关闭,这个还没有实现,所以重点就是打通这个设备。

要进行硬件对接首先要知道对接的接口形式和数据协议,通过以下三步:

第一步,找到设备的品牌和型号;

第二步,快速在官网找到说明书,通过了解这块设备是施耐德品牌C2000型号,一款以太网型开关量模块,向下使用RS485接入道闸的串口,向上提供Modbus-TCP协议可以远程控制。

第三步,通过说明书找到具体的控制协议,然鹅Modbus协议是使用原始的16进制描述,并没有线圈相关的介绍。

 

找到了对应的协议,下一步就算摞起袖子开工。因为对方在宁夏而我在长沙,需要代码开发调试不可能在对方机器上安装一套VS开发工具再远程到他电脑,这样很不方便,所以使用代理软件将设备的Modbus端口临时转发出来,这样跨越千里通过网络就可以在异地联调设备。

经过几个小时的摸索,成功实现了设备的开启和关闭。中间过程还算顺利,就是使用NModbus时是使用的Int参数需要进行进制转换,这里浪费了一点时间。

 

        // 开关控制
        function open(address, startAddress, value) {
            var $msgWrite = $('#msgWrite');
            dds.iot.com.exeCommand({ id: wid, name: "WriteSingleCoil", data: { slaveAddress: address, startAddress: startAddress, value: value } }, function (ar) {
                if (ar.Success) {
                    $msgWrite.text('操作成功')
                } else {
                    $msgWrite.text('操作失败:' + ar.Message)
                }
            })
        }
        //开关状态读取
        function readStatus(address, startAddress, num) {
            dds.iot.com.exeCommand({ id: wid, name: "ReadCoils", data: { slaveAddress: address, startAddress: startAddress, numberOfPoints: num } }, function (ar) {
                if (ar.Success) {
                    $msg.text('数据:' + ar.Data)
                } else {
                    $msg.text('操作失败:' + ar.Message)
                }
            })
        }

        // 启动称重采集服务
        function startWeight() {
            var $weight = $("#weight");

            var type = 'test';// 修改为实际型号
            //var type = 'yh_a9';// 耀华XK3190-A9:yh_a9

            var port = 1;
            var baudRate = 9600;
            // 调用电子秤
            dds.iot.weight.start({
                type: type,
                port: port,
                baudRate: baudRate,
                onUpdateWeight: function (data) {
                    // 重量回调事件
                    $weight.html(data.weight);
                    console.log('最新重量:'+ data.weight)
                },
                complete: function (ar) {
                    if (!ar.Success) {
                        alert(ar.Message);
                    }
                }
            })
        }

  

上层封装了js和简单的UI参考示例,我这边的工作就顺利交付了。

 

IoTBrowser平台开源地址:https://gitee.com/yizhuqing/IoTBrowser/

 

标签:function,施耐德,网关,weight,Web,startAddress,ar,var,data
From: https://www.cnblogs.com/yizhuqing/p/18132599

相关文章

  • 42 Typescript编译配置-webpack-babel
    TS编译配置自动编译单个文件tsc1.ts#如果想要自动监视文件的变化,需要添加`-W`配置tsc1.ts-W自动编译整个项目初始化,会自动生成一个tsconfig.json文件,然后直接执行tsc命令,就可以对当前目录的所有ts文件进行编译,生成对应的js文件#初始化项目tsc--init#编译......
  • 02_Web Api使用Jwt
    JWT(JSONWebToken)是一种用于在网络应用之间传递信息的开放标准(RFC7519)。它使用JSON对象在安全可靠的方式下传递信息,通常用于身份验证和信息交换。在WebAPI中,JWT通常用于对用户进行身份验证和授权。当用户登录成功后,服务器会生成一个Token并返回给客户端,客户端在接下来的请求......
  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • CMC-IIS-WebService發布遇到的問題點
     启动网站调试提示HTTP错误403.14–ForbiddenWeb服务器被配置为不列出此目录的内容。解决方案第一种.在网站的配置文件里添加,第二種IIS設置(不使用)。<system.webServer><directoryBrowseenabled="true"/></system.webServer>  IIS中的一個異常:......
  • TSINGSEE青犀AI智能分析网关V4叉车载货出入库检测算法介绍及应用
    随着物流行业的快速发展,叉车作为物流运输的重要设备,其安全性和效率性越来越受到人们的关注。然而,在实际操作中,由于人为因素和操作环境的复杂性,叉车事故时有发生,给企业和个人带来了巨大的损失。为了提高叉车运输的安全性和效率,近年来,人工智能技术逐渐应用于叉车运输领域,其中,叉车载......
  • TSINGSEE青犀AI智能分析网关V4人员睡岗检测算法介绍及应用
    人员睡岗AI算法是一种通过人工智能技术来检测和预警人员是否处于睡眠状态的算法。它主要通过分析人员的行为、姿势和身体特征等信息来判断人员是否已经进入睡眠状态。该算法通过对监控摄像头捕捉的画面进行实时分析,利用卷积神经网络(CNN)对图像进行特征提取,进而判断画面中的人员是否......
  • TSINGSEE青犀AI智能分析网关V4吸烟/抽烟检测算法介绍及应用
    抽烟检测AI算法是一种基于计算机视觉和深度学习技术的先进工具,旨在准确识别并监测个体是否抽烟。该算法通过训练大量图像数据,使模型能够识别出抽烟行为的关键特征,如烟雾、手部动作和口部形态等。在原理上,抽烟检测AI算法主要依赖卷积神经网络(CNN)进行图像特征提取和分类。CNN能够自......
  • 基于Web的二手房交易系统
    墨刀、Axure和Mockplus适用领域及优缺点墨刀(MockingBot):适用领域:墨刀主要定位于移动端原型设计,特别适合移动应用和微信小程序的快速原型制作。优点:操作简便:界面直观,新手上手快,拖拽式操作使得设计过程高效。动效丰富:提供多种动效,方便设计师制作生动的交互效果。缺点:自......
  • webpack优化
    编译优化1、使用缓存:缓存可以显著提高编译速度。例如,babel-loader的cacheDirectory选项可以将转译的结果缓存到文件系统中,此外,cache-loader可以将其他loader的处理结果缓存到磁盘。2、DLL动态链接库:DLL文件为动态链接库,在一个动态链接库中可以包含给其他模块调用的函数和数据。......
  • Asp.Net Core WebApi使用Swagger分组展示接口
    先通过Nuget包管理器安装Swashbuckle.AspNetCore包,然后修改Startup.cs的ConfigureServices方法:services.AddSwaggerGen(c=>{//添加swagger文档c.SwaggerDoc("system",newOpenApiInfo(){......