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

打印 上一主题 下一主题

主题 880|帖子 880|积分 2640

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

 
业务流程:
①摄像头识别车牌号
②开启前入磅道闸
③红外监测是否抵达称重区域
④采集地磅重量,自动判断仪表读数稳定
⑤摄像头抓拍现场图像,同时并发采集多路摄像头形成现场档案
⑥数据打包上传到MES系统
⑦打印小票
⑧开启后出磅道闸
这位同学基于java技能栈研究了一段时间希望较慢,应该是通过园子接洽到我。我们简单沟通了一下,确定使用IoTBrowser来开辟,虽然前期没有界面的展示需求,但是保留了UI控制的扩展性,最重要是用html+js开辟起来简单、高效。我这边提供硬件层的驱动和js接口,他来实现上层业务逻辑控制。
因为现在项目处于前期技能验证阶段,以是前期拿了2款硬件进行测试。第一款是地磅秤,据了解地磅秤仪表使用耀华A9,IoTBrowser已经自带实现,js示例也提供了不需要二次开辟。第二个就是控制道闸的开启与关闭,这个还没有实现,以是重点就是打通这个设备。

要进行硬件对接起首要知道对接的接口形式和数据协议,通过以下三步:
第一步,找到设备的品牌和型号;
第二步,快速在官网找到说明书,通过了解这块设备是施耐德品牌C2000型号,一款以太网型开关量模块,向下使用RS485接入道闸的串口,向上提供Modbus-TCP协议可以远程控制。
第三步,通过说明书找到详细的控制协议,然鹅Modbus协议是使用原始的16进制描述,并没有线圈相关的介绍。
 
找到了对应的协议,下一步就算摞起袖子开工。因为对方在宁夏而我在长沙,需要代码开辟调试不可能在对方机器上安装一套VS开辟工具再远程到他电脑,这样很不方便,以是使用代理软件将设备的Modbus端口临时转发出来,这样跨越千里通过网络就可以在异地联调设备。
颠末几个小时的探索,成功实现了设备的开启和关闭。中心过程还算顺利,就是使用NModbus时是使用的Int参数需要进行进制转换,这里浪费了一点时间。


 
  1.         // 开关控制
  2.         function open(address, startAddress, value) {
  3.             var $msgWrite = $('#msgWrite');
  4.             dds.iot.com.exeCommand({ id: wid, name: "WriteSingleCoil", data: { slaveAddress: address, startAddress: startAddress, value: value } }, function (ar) {
  5.                 if (ar.Success) {
  6.                     $msgWrite.text('操作成功')
  7.                 } else {
  8.                     $msgWrite.text('操作失败:' + ar.Message)
  9.                 }
  10.             })
  11.         }
  12.         //开关状态读取
  13.         function readStatus(address, startAddress, num) {
  14.             dds.iot.com.exeCommand({ id: wid, name: "ReadCoils", data: { slaveAddress: address, startAddress: startAddress, numberOfPoints: num } }, function (ar) {
  15.                 if (ar.Success) {
  16.                     $msg.text('数据:' + ar.Data)
  17.                 } else {
  18.                     $msg.text('操作失败:' + ar.Message)
  19.                 }
  20.             })
  21.         }
  22.         // 启动称重采集服务
  23.         function startWeight() {
  24.             var $weight = $("#weight");
  25.             var type = 'test';// 修改为实际型号
  26.             //var type = 'yh_a9';// 耀华XK3190-A9:yh_a9
  27.             var port = 1;
  28.             var baudRate = 9600;
  29.             // 调用电子秤
  30.             dds.iot.weight.start({
  31.                 type: type,
  32.                 port: port,
  33.                 baudRate: baudRate,
  34.                 onUpdateWeight: function (data) {
  35.                     // 重量回调事件
  36.                     $weight.html(data.weight);
  37.                     console.log('最新重量:'+ data.weight)
  38.                 },
  39.                 complete: function (ar) {
  40.                     if (!ar.Success) {
  41.                         alert(ar.Message);
  42.                     }
  43.                 }
  44.             })
  45.         }
复制代码
  
上层封装了js和简单的UI参考示例,我这边的工作就顺利交付了。
 
IoTBrowser平台开源地点:https://gitee.com/yizhuqing/IoTBrowser/
 

接洽方式:微信 billy_yi  QQ: 909501683出处:http://yizhuqing.cnblogs.com/    多年.NET平台开辟经验,善于物联网各类设备(地磅、轨道秤、RFID等)集成开辟。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表