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

这篇具有很好参考价值的文章主要介绍了记录协助Javaer硬件快速开发过程之Web技术栈对接施耐德网络IO网关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

 

业务流程:

①摄像头识别车牌号

②开启前入磅道闸

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

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

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

⑥数据打包上传到MES系统

⑦打印小票

⑧开启后出磅道闸

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

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

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

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

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

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

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

 文章来源地址https://www.toymoban.com/news/detail-849933.html

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

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

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

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

 

        // 开关控制
        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/

 

到了这里,关于记录协助Javaer硬件快速开发过程之Web技术栈对接施耐德网络IO网关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT如何协助人们学习新的科学和技术概念?

    ChatGPT可以在许多方面协助人们学习新的科学和技术概念。随着科学和技术的不断发展,学习成为了一个终身的过程,人们需要不断地更新和扩展他们的知识。ChatGPT作为一种强大的自然语言处理工具,可以在以下几个方面为学习者提供帮助: ## 1. 提供实时信息和最新资讯 科学

    2024年02月09日
    浏览(38)
  • 又开发好一个系统,详细记录软著申请过程

    大家好,我是小悟 又开发好一个系统,详细记录软著申请过程 经过几个通宵达旦的撸代码之后,又开发好了一个系统,和以往一样,系统开发好了少不了申请软件著作权证书,兄弟们,软著申请搞起来啊。 在版权保护中心后台提交资料,没有账号的需要先注册一个账号。很

    2024年02月04日
    浏览(39)
  • 前端前沿web 3d可视化技术 ThreeJS学习全记录

    完整案例与项目代码: gitee开源项目地址 https://gitee.com/jumping-world-line/01_threeJS_basic 随着浏览器性能和网络带宽的提升 使得3D技术不再是桌面的专利 打破传统平面展示模式 前端方向主要流向的3D图形库包括Three.js和WebGL WebGL灵活高性能,但代码量大,难度大,需要掌握很多底层

    2024年02月01日
    浏览(63)
  • [FPGA 学习记录] 快速开发的法宝——IP核

    快速开发的法宝——IP核 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为快速开发的法宝。在本小节当中,我们将和各位朋友一起来学习了解 IP 核的相关知识、理解掌握 IP 核的调用方法。 我们分为以下几个部分进行 IP 核的学

    2024年02月05日
    浏览(49)
  • 支付宝小程序模板开发,协助商家一键创建小程序

    关于支付宝小程序模板开发,之前写过相关的介绍,详情请看 【支付宝小程序模板开发,一整套流程】这篇文章。 和微信一样,支付宝也有通过接口创建小程序的服务。不过在对接模板开发那时候,还没开放这个接口,是一个邀请制的,没有被官方主动邀请到就没有权限调

    2024年02月13日
    浏览(46)
  • Unity+pico4开发过程及问题记录,创建一个自己的pico安卓应用

    参考PICO developer 官方文档,本人unity版本为 2022.116f1c1 , PICO Unity Integration SDK- 214 . sdk最新版官网下载:PICO Unity Integration SDK 博主使用的版本在这里提供一个链接: 以下过程均基于以上版本,按照如下流程操作比较合适。 ①Unity编辑器需要支持安卓平台,在 添加模块 窗口处,勾

    2024年02月03日
    浏览(49)
  • MATLAB /Simulink 快速开发STM32(使用st官方工具 STM32-MAT/TARGET),以及开发过程

    配置好环境以后就是开发: stm32cube配置芯片,打开matlab添加ioc文件,写处理逻辑,生成代码,下载到板子中去。 配置需要注意事项: STM32CUBEMAX6.5.0 + MABLAB2022B+keilV5.2 Matlab生成的代码CTRL+B 其中关键的配置有哪些,如图: untitledtest_stm32是matlab生成的代码

    2024年02月14日
    浏览(51)
  • Stack Overflow开发者调查发布:AI将如何协助DevOps

    Stack Overflow 发布了开创性的2023年度开发人员调查报告 [1]。报告对 90,000 多名开发人员进行了调查,全面展示了当前软件开发人员的体验。接下来,本文将重点介绍几项重要发现,即 重要编程语言和工具偏好、人工智能在开发工作流程中的应用 以及 这些趋势对 DevOps 领域可能

    2024年02月10日
    浏览(39)
  • [记录]基于Flask Web全栈开发实战(黄勇·著)

    Flask 学习 flask 项目配置 Debug模式 Host、Port配置 在pycharm中,设置debug模式和port端口号 在app.config中添加配置 加载配置文件 URL 和 视图 定义无参URL 定义有参URL 指定参数类型 语法:类型:参数名 如: @app.route(‘/blog/int:blog_id’) def blog_detail(blog_id):      return f’您查找的博客

    2024年04月13日
    浏览(44)
  • Python Web开发记录 Day1:HTML

    名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN) (一个喜欢古诗词和编程的Coder😊) 一、HTML 1、前端引入和HTML标签 ①前端引入 安装fllask 咱们的网站与别人的不一样: Flask框架为了让咱们写标签方便,支持将字符串写入到文件里面

    2024年02月21日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包