IG系列联网,禁止某些终端设备联网

IG网关上禁止某些终端设备通过网关上网,造成无用的流量损失。打开网关配置页面-->网络-->防火墙-->访问控制列表-->添加策略之后应用到所在出口网络上。

IG网关上禁止某些终端设备通过网关上网,造成无用的流量损失。

打开网关配置页面-->网络-->防火墙-->访问控制列表-->添加策略之后应用到所在出口网络上。

58744665ee19182cf668809168293481.png

网关IG 902链路备份

一.蜂窝网和以太网(以太网为主)1.在确保以太网和蜂窝网都正常连接的情况下点击高级功能2. 输入登录网关的用户名密码3. 配置SLA4. 配置Track模块5. 配置接口备份6. 配置静态路由7. 配置完成检查路由状态8. 配置完成,此时若以太网没有网络,蜂窝...
继续阅读 »

一.蜂窝网和以太网(以太网为主)

1.在确保以太网和蜂窝网都正常连接的情况下点击高级功能

93b92dd9dcf8af9fca16d76fbcb5cca8.png

2. 输入登录网关的用户名密码

f082abd632c02d2407293cba394a866c.png


228b2bd441c097fd7d16ec58ba84a624.png

3. 配置SLA

8cc18c61fcea9be717e79ec2bd1f839a.png


383c3986187a3c7f25837c1ca6b386f7.png

4. 配置Track模块

3a462130b995d9794bbe2d10d93eafc8.png

405e250e2c03ae0a37cc1ae7bf2b3554.png

5. 配置接口备份

d12bf59dad7a8f85381c34d9246669a5.png

6. 配置静态路由

8076e5c7ef0cf83560b82fa91284a851.png

7. 配置完成检查路由状态

ae85c3e2242c2ba43f9c6ace056c1549.png

057f09c185be6ced3a0f2d88347fe863.png

8. 配置完成,此时若以太网没有网络,蜂窝网连接

68531c92b85105403c49e3554eb69fdd.png

0fcfd8ff464006d946f329a09605dbb1.png

二.蜂窝网和WiFi(WiFi为主)

1. 配置SLA

535558a7115e6bbf9b4d752c4123719d.png

2. 配置Track标识

63cad50b9473657eff823b4f24239854.png

3. 配置接口备份

0485b1015967d64c7dc3de0077855318.png

4. 静态路由配置

aefff81edb39790d0f6dedfafa4de271.png

5. 配置完成

5d5a8ae7e8b895f4a54ff3dc4d3e6244.png

6. 此时若WiFi关闭,蜂窝网自动连接

852f76a532f145e624b024c9fd3b4c32.png

三.以太网和WiFi(以太网为主)

1.配置SLA

8cb9ddc79af3cf6b5fdc9b16c60eda49.png

2.配置Track标识

5123221939bae589e24ddb087f29c3e7.png

3. 配置接口备份

f369839c243535ca51d80d0e4ee8831b.png

4. 配置静态路由

4425e40bfe0d4c9370974b49fb822700.png

5. 配置完成

fa13e894d7f1c8ecf04541bbd6b208c6.png

6. 此时若有线没网络,自动切换WiFi

a715185c957409335998c86999b11f38.png

收起阅读 »

IG网关如何实现毫秒采集上报

网关毫秒采集配置(注:目前设备支持的毫秒采集协议modbus、opc ua。最低毫秒采集周期100ms)准备工作映翰通网关;PC;网线;谷歌浏览器;modbus、opc ua模拟软件或者PLC等真实设备操作步骤:1、PC或者PLC设备通过网线连接。通过PC登陆...
继续阅读 »

网关毫秒采集配置

(注:目前设备支持的毫秒采集协议modbusopc ua。最低毫秒采集周期100ms

准备工作

映翰通网关;PC;网线;谷歌浏览器;modbusopc ua模拟软件或者PLC等真实设备

操作步骤:

1、PC或者PLC设备通过网线连接。通过PC登陆设备管理配置页面

2d10d72b87f32e57c6438f7ef4b78739.png

2、打开
边缘计算→启用边缘计算SDK环境→启用APP

7d666d8f5826b8c12bf4613a3eed71ba.png

3、进入
设备监控→测点监控→添加控制器及点位信息。数据正常采集

(在添加控制器时启用毫秒采集选项,添加测点时需要毫秒采集的点位开启毫秒采集开关)

695db414675d170f151aa4c0a1a523a5.png
ede6a3daa6d978f893358a1dc85d9865.png
e98fd8d3fc1a19b880f4d3cae7483461.png

4、点击云服务连接mqtt平台,等mqtt平台连接成功

8e7eb7437cd9186b13593a4c34ba2d7b.png

5、点击自定义快函数,新增快函数

(注意添加本地订阅触发,触发主题为:“ds2/eventbus/south/upload/msec/data/\{controllerName\}”
\{controllerName\最后的这个字段为前面添加的控制器名称。如示例为TCP-test

61bea17cc4e14b046a616005ac3fef85.png

6、添加脚本

deb7a1611ace2b4311c6c3016d848259.png

7、脚本示例

# Enter your python code.

import json

from common.Logger import logger

from quickfaas.remotebus import publish


def main(message):

    logger.info(json.dumps(message))

    publish("inhand",json.dumps(message),1,cloud_name="default")

8、通过mqtt客户端订阅验证

8b81f4452cf027919169d261305c31b7.png
收起阅读 »

IG902默认桥接情况下修改连接外网方式

IG902默认桥接情况下修改连接外网方式一:确保连接外网的网线连接至GE 0/1的接口上;连接PC的网线连接至GE0/2(Console)的接口上。二:通过WEB界面 192.168.2.1 进入设备配置。https://192.168.2.1三:如何将默认桥...
继续阅读 »

IG902默认桥接情况下修改连接外网方式

一:确保连接外网的网线连接至GE 0/1的接口上;连接PC的网线连接至GE0/2Console)的接口上。

222a16fd747461d69ea3de4a2ee9b6c6.png

二:通过WEB界面 192.168.2.1 进入设备配置。

https://192.168.2.1

e2ac37ce6077dc3f3097e29c64b8e033.png

三:如何将默认桥接口关闭。(查看设备是否启用桥接口如下)

2cbb507e6d8bd30888a57f884aeaf4f5.png9638530f4a315dd61fbcc9b2a998c230.pngc8a9c63a07524dc92980ab03bd5000a2.png

打开GE0/1DHCP服务后,将连接PC的接口转换连接至GE0/1并通过 192.168.3.1 来访问设备控制界面。

95a39d9b0dcc799d3217be8f781f9585.png

登录进入后点击高级功能进入配置界面:

d5be7bc05b40aad4905087f683f5ab41.png2cf5d88d6d9b04b21e9ecff0ffe01df0.pngde896d1b686fdfc9689f1220e68e46d3.pngc358c8a7eb3b08134cf6e5616fda823f.png


四:如何设定GE0/1WAN口,并设定固定IPDHCP自动获取。(需完成桥接口的删除操作后,PC连接GE0/2的接口来做配置)

1fc7eaa9611f7a2fa5614cb471bb46ff.pngd9644a2575642eb09a063dc5bb864c66.pngc110de8428ea2818fe05199a768a03de.png2b70d65a508b73c30d0ec331cb465e48.png

五:如何判断设备正常连接。

72330dc440fff8995253a0ba67fdcd95.pngbc3a0c2e732d3abb529e64bb5f0a04ff.png


收起阅读 »

IG网关产品如何实现链路备份

设备支持三种联网方式:有线连接、SIM卡连接、WiFi连接(产品类型需支持)。一:有线连接根据设备标注的提示连接WAN口,并设定WAN口的IP(DHCP获取居多);二:SIM卡界面选择启用数据连接,如使用专网卡等(根据特定的APN、用户验证方式)设定信息来确保...
继续阅读 »

设备支持三种联网方式:

有线连接、SIM卡连接、WiFi连接(产品类型需支持)。

一:有线连接根据设备标注的提示连接WAN口,并设定WAN口的IP(DHCP获取居多);

57605d62bc3f725285a31b14bda29936.png

二:SIM卡界面选择启用数据连接,如使用专网卡等(根据特定的APN、用户验证方式)设定信息来确保正常连接至特定的网络;

(支持双SIM卡的设备)启用双SIM卡机制,设备检测到当前SIM卡故障无法通讯时即可自动切换至副卡。

同时可以启用ICMP链路侦测功能确保通讯信号的时效性。

d70f477126f1ad28e43959df031d9415.png8d20d31e5680fc6f0f7e3dac18eff724.png

三:WiFi模式设定为STA后重启设备,设定并扫描需要连接的WiFi输入密码,应用连接。以上连接均可以在IG设备主页或IR设备网络连接的页面下查看到实时状态。

6d5e013470920449ec76ca9a49a4a6e1.png

四:设定SIM卡或网口、无线三者的链路备份,既可以通过SIM卡连接也可以通过网口连接也可以通过WiFi的方式接入网络。

1.登录跳转进入高级功能设定模块:

137227841d991f2db07d4e32a6263595.png

2、选择链路备份下的-接口备份模块。

f731e3a60325ff6f6b0c38f08ab775b5.png

3、选择主接口以及备份接口等数据参数;设定完成后添加即生效。(Dot11radio 1代表WLAN接口)

d696a12f8ce142fff8259aa9159c20b5.png

通过这样设定即可实现链路备份的基础功能设定:

5a76d49640a105cf1b03b755899fa64a.png

收起阅读 »

IG900系列网关怎么可以将两个接口设置到同一个局域网(两个口做交换口用)

1、电脑网口连接网关的GE0/2口,打开浏览器登录默认地址192.168.2.1进入路由器的配置页面输入用户名:adm密码:1234562、找到系统管理--管理工具--启用telnet 提交更改。电脑打开CMD输入telnet 192.168.2.1用户名:a...
继续阅读 »

1、电脑网口连接网关的GE0/2口,打开浏览器登录默认地址192.168.2.1进入路由器的配置页面

输入用户名:adm

密码:123456

2、找到系统管理--管理工具--启用telnet 提交更改。

d2c4c9a254f3a1ef82c253fda6ddfe75.png

fdac8c5590882cab98c8fd8169f26b48.png

电脑打开CMD

输入telnet 192.168.2.1

f32d9b00362944ecc3fdbef1c3352348.png

用户名:adm

密码:123456

显示如下:

8c631c23264fc5e534dff9d7a3813991.png
继续输入指令:

17:08:53 EdgeGateway# configure terminal

17:08:58 EdgeGateway(config)# interface
bridge 1

17:08:58 EdgeGateway(config)#

17:09:38 EdgeGateway(if-bridge-1)# ip
address 192.168.0.1 255.255.255.0\\
这个地址要合理

17:09:38 EdgeGateway(if-bridge-1)#

17:09:38 EdgeGateway(if-bridge-1)#exit

17:22:12 EdgeGateway(config)#

17:23:01 EdgeGateway(config)# interface
gigabitethernet 0/1

17:23:09 EdgeGateway(if-GE-0/1)#
bridge-group 1

17:23:13 EdgeGateway(if-GE-0/1)#

17:24:01 EdgeGateway(config)# interface
gigabitethernet 0/2

17:24:09 EdgeGateway(if-GE-0/2)#
bridge-group 1






















































17:24:13 EdgeGateway(if-GE-0/2)#

改完后一定要记得改后的地址,需要使用新的地址登录进去,此时不要重启,重启后配置会丢失配置,需要执行如下命令进行保存配置。

17:29:06 EdgeGateway# write

17:29:09 EdgeGateway#

00e53f397c160df8a25c81996f13fd56.png











此命令执行完毕后配置可以永久保存。

*************************************************************************

这里是改桥接口地址需要的操作,上边地址设置的对的话忽略此步骤

17:08:53 EdgeGateway# configure terminal

17:08:58 EdgeGateway(config)# interface
bridge 1

17:08:58 EdgeGateway(config)#

17:09:38 EdgeGateway(if-bridge-1)# ip
address 192.168.X.X 255.255.255.0

此时需要使用新的地址登录然后保存配置信息

17:09:53 EdgeGateway# write

*****************************************************************************


收起阅读 »

IG网关读取西门子smart200PLC寄存器类型V、VW 的数据

1、添加设备,PLC协议选择ISO-on-TCP,设置IP地址和端口102,模式选择TSAP。客户端TSAP:02.00,服务器TSAP:02.012、添加变量,寄存器类型选择V,填写地址,选择数据类型。3、成功读取寄存器V5000的数据。

1、添加设备,PLC协议选择ISO-on-TCP,设置IP地址和端口102,模式选择TSAP。客户端TSAP:02.00,服务器TSAP:02.01

56233d5a5a684f50a019662cbfae2968.png

2、添加变量,寄存器类型选择V,填写地址,选择数据类型。

54735c617ba782cec68abb07f8f279a0.png

3、成功读取寄存器V5000的数据。

f1900a680e4f249f8710323d040c4f07.png


IG 配置连接Wi-Fi 连网

1.电脑通过网线连接设备,访问192.168.2.1,使用默认用户adm,密码123456登录设备.2.导航栏 选择网络 >>WLAN.3.启用wifi 功能4.点击扫描按钮,搜索网络中的无线信号. 选择需要连接的无线网络,输入认证密码.点击提交按...
继续阅读 »

1.电脑通过网线连接设备,访问192.168.2.1,使用默认用户adm,密码123456登录设备.

69939d4560b5aeb939c353bd0f3fe99e.png

2.导航栏 选择网络 >>WLAN.

1c2b170bbee9fd66587d38d5a867d0b5.png

3.启用wifi 功能

bedd146ab5f82f71f735acd0fc197ec5.png

4.点击扫描按钮,搜索网络中的无线信号. 选择需要连接的无线网络,输入认证密码.点击提交按钮.

a3a073012322b6e968e0e1c5579670f3.png

5.配置默认路由

选择网络>路由>静态路由

28d413ac808e0eda9a1a95bd07016afd.png

点击编辑图标修改默认路由,修改为如图所示

2f63b06158cc9e718a22f77dd094e6ee.png

6.测试 导航栏选择 系统管理>>工具

cff01ab4475c1f25364958baad48b623.png

ping 功能主机处输入8.8.8.8 点击ping按钮

0f60979cbbc45ae35e8ea4d8f4256b1b.png

返回如下结果表示配置正确,设备联网正常.

e19507499a7bbb108526b5da4a25225b.png

收起阅读 »

device_supervisor实现数据缓存一些时间的脚本示例

本实验是做的采集数据上传云平台保留原先的断点续传并且可以将数据暂存到路由器的存储里,暂时设置暂存3天,第5天文件创建会删除第一天的文件,脚本可以根据需要修改上传和修改机制。查看生成的日志文件,如有错误欢迎指出,欢迎交流!#*******************...
继续阅读 »

本实验是做的采集数据上传云平台保留原先的断点续传并且可以将数据暂存到路由器的存储里,暂时设置暂存3天,第5天文件创建会删除第一天的文件,脚本可以根据需要修改上传和修改机制。

查看生成的日志文件,

ff6a9000d3c89640e37f95eb89697cd7.png

如有错误欢迎指出,欢迎交流!

#**********************************以下是脚本解析*********************************

#以下是写数据到网关的脚本:

name=datetime.datetime.now().strftime("%Y%m%d")#获取时间到天作为文件名
namedel=(datetime.datetime.now()+datetime.timedelta(days=-3)).strftime("%Y%m%d")#这个是要删除的时间到天,作为删除文件名也就是覆盖删除。(当前所用的删除机制是删除前边的整个文件)
if os.path.isfile("/var/user/log/"+namedel+".log"):#判断需要删除的文件是否存在,存在即删除。
os.remove("/var/user/log/"+namedel+".log")#执行删除操作
tim=datetime.datetime.now().strftime('%Y-%m-%d-%H:%M:%S')#这个是生成存储消息的时间。
path='/var/user/log/'+name+".log"#数据存储文件的位置。
tex=open(path,"a",encoding="utf8" )#打开文件
tex.write("%s数据%s\n" %(tim,value_list) )#写入数据
tex.close()#关闭文件

后边是完整代码
from common.Logger import logger
import json,os
import logging
import datetime
def vars_cache_test(data_collect, wizard_api):
value_list = []
utc_time = datetime.datetime.utcfromtimestamp(data_collect["timestamp"]+28800)
for device, val_dict in data_collect['values'].items():
value_dict = {
"deviceID": device,
"timestamp": utc_time.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
"fields": { }
}
for id, val in val_dict.items():
value_dict["fields"][id] = val["raw_data"]
value_list.append(value_dict)

name=datetime.datetime.now().strftime("%Y%m%d")
namedel=(datetime.datetime.now()+datetime.timedelta(days=-3)).strftime("%Y%m%d")
if os.path.isfile("/var/user/log/"+namedel+".log"):
os.remove("/var/user/log/"+namedel+".log")
tim=datetime.datetime.now().strftime('%Y-%m-%d-%H:%M:%S')
path='/var/user/log/'+name+".log"
tex=open(path,"a",encoding="utf8" )
tex.write("%s数据%s\n" %(tim,value_list) )
tex.close()
logging.info(value_list)
return value_list


收起阅读 »

边缘计算网关OPC UA Client 如何读取OPC UA Server数据

1. 下载一个电脑安装的OPC UA Cliet 工具UaExpert,协助我们查找Server的变量https://wiki.freeioe.org/doku.php?id=opcua:uaexportuaexpert-bin-win32-x86-vs200...
继续阅读 »

1. 下载一个电脑安装的OPC UA Cliet 工具UaExpert,协助我们查找Server的变量

https://wiki.freeioe.org/doku.php?id=opcua:uaexport

uaexpert-bin-win32-x86-vs2008sp1-v1.5.0-319.zip

2. 读取到变量之后,可以通过网线链接PLC和网关,在边缘计算APP中添加PLC

ea75a759cbcca7b2a0afa14b46fd98de.png

3. 添加PLC寄存器,以下面变量为例子:

a525dd66d3155dc40e8e60de1a79f8a3.png

添加更多工业协议设备,访问 http://app.ig.inhand.com.cn

收起阅读 »

IG902 内部APP实现数据互访

1.进入设备web管理界面,运行device_supervisor app程序,选择 设备监控->云服务.2.配置 发布功能(需要明白mqtt协议的组概念,同一组中可以接收数据,及A发布主题 为topic_A,B 和 c 同时订阅 topic_A,则B和...
继续阅读 »

1.进入设备web管理界面,运行device_supervisor app程序,选择 设备监控->云服务.

635aed843da5cc9da5e34168bd94ee6e.png

2.配置 发布功能(需要明白mqtt协议的组概念,同一组中可以接收数据,及A发布主题 为topic_A,B 和 c 同时订阅 topic_A,则B和C能同时收到数据)

43fceb34dc377a7695bcb273a9197610.png

定义发布主题为jieshou, Qos 为1.

3.添加采集数据的相关信息

5bc0b6cd5e0b853455a3548554cd2aa4.png

4.模拟客户自行开发的APP实现与device_supervisor 通讯.

4.1 开启IG网关 调试模式.

d4e69c48f4191d103ed50581464aaaf8.png

4.2 通过ssh 222端口连接 设备用户名密码 如上图

a94075df27e0ff06200b3cab7e8c8193.png

3.3 编写测试代码

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
print("Connected with result code: " + str(rc))

def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect('127.0.0.1', 9009, 600)
client.subscribe('jieshou', qos=1)
client.loop_forever()

4.3运行py文件,查看接收数据

a68885cb5873c276111778e849c5b810.png


注意:IG 里面开启 9009 只对设备本机内部APP互访数据有效, 不对外提供服务(外部通过IG地址加端口访问).

收起阅读 »

IG902上传数据到MQTT云平台EMQ

 EMQX 是全球领先的开源物联网MQTT 5.0服务器,高并发、低延时,内置强大的规则引擎,支持边缘及云端部署,是5G时代大型物联网应用首选技术方案。IG902边缘计算网关,可以通过MQTT协议接入EMQ服务器,帮助您快速搭建IIoT计算方案。   1. I...
继续阅读 »

 EMQX 是全球领先的开源物联网MQTT 5.0服务器,高并发、低延时,内置强大的规则引擎,支持边缘及云端部署,5G时代大型物联网应用首选技术方案。IG902边缘计算网关,可以通过MQTT协议接入EMQ服务器,帮助您快速搭建IIoT计算方案。   

1. IG902初始化配置

1)开启边缘计算安装相应APP device_supervisor并启动APP

46bd8b430aa3ff8d6a1d4f8753178dd4.png


2)添加设备选择右侧栏目设备监控-》设备列表右上角操作中的“ ”号添加设备。

3672e865b48c44082bb9a84e76e54bdd.png


3)添加变量

daba83f7a5acd5fd5070438547473bba.png

c15935872fede65e42aa12cc7b4871db.png

2.模拟传感器数据上传:

1)使用软件modbus Slave

2ffe9c79551e1349f617eabbbc085e11.png

   2) 添加模拟数据

22d1406f2c45584fc05d80a723da7db3.png
398f80e5b4eec2dacef6bb9ced6ba123.png

3)启动数据发送connection-connect

3.配置设备云服务及搭建EMQ服务器

1)在IG Web端查看接收数据

d4f9c11b97266223a3ac2a3fdbbbc409.png

 4.搭建EMQ服务器

1)下载链接 https://www.emqx.io/cn/downloads#enterprise

49ddfd0de4d442aaeb66a4c67023adbc.png

2)以Linux系统为例注册账户下载免费的license 文件,替换etc目录下的对应文件。

3)安装目录bin目录下启动系统 通过./empx start命令启动。

9594e052b900e76b0e25de55fbe1b7e9.png

  4)浏览器访问http://服务器地址:18083/#/login  输入用户名和密码用户名admin 密码public登录管理页面

0a23e6be98474208d5cf9e1f5c968dfc.png

aaeef3e6aedbc228d25d8f0052f6c6cd.png  

5.EMQ平台配置用户名认证

1)关闭匿名登录

配置匿名认证开关:

# 修改etc/emqx.conf

## Value: true | false

allow_anonymous=false

方式一:

修改etc/plugins文件夹下的

emqx_auth_username.conf文件

# etc/plugins/emqx_auth_username.conf

auth.user.password_hash = plain

## 第一组认证数据

auth.user.1.username = admin

auth.user.1.password = public

## 第二组认证数据

auth.user.2.username = test

auth.user.2.password = test

启动认证服务

./emqx_ctlplugins loademqx_auth_username或在web界面开启服务

重启emqx服务

./bin/emqx stop

./bin/emqx start

查看运行状态

./bin/emqx_ctlstatus


方式二: 1)安装mysql 数据库

mysql安装

检查系统本身是否有预装的mysql

rpm -qa | grep mysql #检查是否安装了mysql

rpm -qa | grep mariadb #检查是否安装了mariadb

rpm -e xxx#一般使用此命令即可卸载成功

rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)

安装

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

//下载mysql的rpm的包

yum -y installmysql57-community-release-el7-10.noarch.rpm

yum -y installmysql-community-server


2)创建相关表格:

>mysql –u root –p

createdatabase mqtt;

CREATETABLE`mqtt_user`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`username`varchar(100) DEFAULTNULL,

`password`varchar(100) DEFAULTNULL,

`salt`varchar(35) DEFAULTNULL,

`is_superuser`tinyint(1) DEFAULT0,

`created`datetime DEFAULTNULL,

PRIMARY KEY(`id`),

UNIQUEKEY`mqtt_username`(`username`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;


3) 修改文件

# etc/plugins/emqx_auth_mysql.conf

## 服务器地址

auth.mysql.server = 127.0.0.1:3306

## 连接池大小

auth.mysql.pool = 8

auth.mysql.username = mysql数据库名

auth.mysql.password = 数据库密码

auth.mysql.database = mqtt数据库

auth.mysql.query_timeout = 5s


4)启动服务mysql认证服务emqx_ctl plugins load emqx_auth_mysql   或通过web管理端插件开启

注意:如果服务未启动查看报错内容解决。1.配置文件出错(检查后修改)。2.mysql未开启远程管理权限

5)添加测试用户

mysql -u root -p

usemysql;

updateusersethost=’%’ whereuser=‘root’ andhost=‘localhost’;

添加认证用户test密码test

INSERTINTO`mqtt_user`( `username`, `password`, `salt`)

VALUES

('test', ' f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2', NULL);


密码采用sha256加密

e8badf2ae54c5d8728461e2c141b5b64.png

6)客户端测试使用软件MQTTX  链接:https://mqttx.app/cn/

8a28417c8afec0fa84721cac104e757e.png

7)点击connect,提示连接成功

a31acb2aac6c3ec41879f958e99850bd.png

8IG连接需要添加用户名密码

6042565183e182ac1c3130b75d4e02ca.png

9)编辑发布脚本

e269416588144bcbe747d4e41451a519.png

相关发布脚本参考链接:

https://read-ts-en.readthedocs.io/en/latest/PLC%20Supervisor%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C.html#mqtt

6.配置客户端数据存储到Mysql

1)手动新建数据表,或根据附件mqtt.sql导入数据库。

修改文件emqx_backend_mysql.conf

# etc/plugins/emqx_backend_mysql.conf

## 服务器地址

auth.mysql.server=127.0.0.1:3306

## 连接池大小

auth.mysql.pool=8

auth.mysql.username=mysql数据库名

auth.mysql.password=数据库密码

auth.mysql.database=mqtt数据库


auth.mysql.query_timeout=5s


2)建立相关表格MySQL设备在线状态表

mqtt_client 存储设备在线状态:

DROPTABLEIFEXISTS`mqtt_client`;

CREATETABLE`mqtt_client`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`clientid`varchar(64) DEFAULTNULL,

`state`varchar(3) DEFAULTNULL,

`node`varchar(64) DEFAULTNULL,

`online_at`datetime DEFAULTNULL,

`offline_at`datetime DEFAULTNULL,

`created`timestampNULLDEFAULTCURRENT_TIMESTAMP,

PRIMARY KEY(`id`),

KEY`mqtt_client_idx`(`clientid`),

UNIQUEKEY`mqtt_client_key`(`clientid`),

INDEXtopic_index(`id`, `clientid`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8MB4;

1 rows in set(0.00sec)


MySQL主题订阅表

mqtt_sub 存储设备的主题订阅关系:

DROPTABLEIFEXISTS`mqtt_sub`;

CREATETABLE`mqtt_sub`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`clientid`varchar(64) DEFAULTNULL,

`topic`varchar(180) DEFAULTNULL,

`qos`tinyint(1) DEFAULTNULL,

`created`timestampNULLDEFAULTCURRENT_TIMESTAMP,

PRIMARY KEY(`id`),

KEY`mqtt_sub_idx`(`clientid`,`topic`,`qos`),

UNIQUEKEY`mqtt_sub_key`(`clientid`,`topic`),

INDEXtopic_index(`id`, `topic`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8MB4;


MySQL消息存储表

mqtt_msg 存储MQTT 消息:

DROPTABLEIFEXISTS`mqtt_msg`;

CREATETABLE`mqtt_msg`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`msgid`varchar(64) DEFAULTNULL,

`topic`varchar(180) NOTNULL,

`sender`varchar(64) DEFAULTNULL,

`node`varchar(64) DEFAULTNULL,

`qos`tinyint(1) NOTNULLDEFAULT'0',

`retain`tinyint(1) DEFAULTNULL,

`payload`blob,

`arrived`datetime NOTNULL,

PRIMARY KEY(`id`),

INDEXtopic_index(`id`, `topic`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8MB4;


MySQL保留消息表

mqtt_retain 存储retain 消息:

DROPTABLEIFEXISTS`mqtt_retain`;

CREATETABLE`mqtt_retain`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`topic`varchar(180) DEFAULTNULL,

`msgid`varchar(64) DEFAULTNULL,

`sender`varchar(64) DEFAULTNULL,

`node`varchar(64) DEFAULTNULL,

`qos`tinyint(1) DEFAULTNULL,

`payload`blob,

`arrived`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,

PRIMARY KEY(`id`),

UNIQUEKEY`mqtt_retain_key`(`topic`),

INDEXtopic_index(`id`, `topic`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8MB4;

select* frommqtt_retain wheretopic = "retain";


MySQL消息确认表

mqtt_acked 存储客户端消息确认:

DROPTABLEIFEXISTS`mqtt_acked`;

CREATETABLE`mqtt_acked`(

`id`int(11) unsignedNOTNULLAUTO_INCREMENT,

`clientid`varchar(64) DEFAULTNULL,

`topic`varchar(180) DEFAULTNULL,

`mid`int(11) unsignedDEFAULTNULL,

`created`timestampNULLDEFAULTNULL,

PRIMARY KEY(`id`),

UNIQUEKEY`mqtt_acked_key`(`clientid`,`topic`),

INDEXtopic_index(`id`, `topic`)

) ENGINE=InnoDBDEFAULTCHARSET=utf8MB4;

3)启动服务mysql存储方法一:emqx_ctl plugins load emqx_backend_mysql方法二:通过插件启动对应插件emqx_backend_mysql

ad7364d5e2dbd484be1322602b78fb76.png

4)通过mysql查看客户端发送数据

f19d595df5b5531465d3d5fb11a571e3.png

EMQ配置文档https://docs.emqx.io/enterprise/latest/cn/

7.数据显示通过软件Grafana

1)下载链接:https://grafana.com/grafana/download安装完成后访问服务器地址:3000进入管理界面,此处访问10.5.20.245:3000

bbd98f99dab9323a86f94caf4ac0e125.png

2设置相关参数

a4bf3166dd7c0ff53526aacaf987ada3.png

3)测试连接mysql是否可以连接

48e110b633c848516279965d30db2932.png

4)创建视图表格

369140450097d0a1ba0f03506f10b2fa.png

5)编辑表格

505205a0041cc3c3c17c7c74eb051c87.png

6)设置数据库及查询语句。

f9151e36a2d956183940f6feaee40fda.png

      8.尝试修改上传值

11e4fe1198ef33ca815977978d052387.png

查看传输的数据

13b2e6b6fb09ba43e6c04688d642fec3.png

   9.EMQ平台下发数据到客户端

1)编辑订阅

72b43d0a8e1f143d23f16732ad794ab8.png

相关程序参考https://read-ts-en.readthedocs.io/en/latest/PLC%20Supervisor%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C.html#id19

2)填写代码

import logging

import json

defctl_test(topic, payload, wizard_api): #定义订阅主函数

logging.info(topic) #打印订阅主题,假定topic为write/plc

logging.info(payload) #打印订阅数据,假定payload数据为{"method":"setValue", "TagName":"SP1", "TagValue":12.3}

payload = json.loads(payload) #反序列化订阅数据

ifpayload["method"] == "setValue": #检测是否为写入数据

message = {payload["TagName"]:payload["TagValue"]} #定义下发消息,包括下发的变量名称和变量值

wizard_api.write_plc_values(message) #调用wizard_api模块中的write_plc_values方法,将message字典中的数据下发至指定变量


3EMQ服务器端连接websocket

f9fbd2dbd14ac6ca3df35006e6c4cc46.png

4)发布信息到客户端,填写对应客户端订阅主题,及修改字段{"method":"setValue", "TagName":"字段名", "TagValue":修改值为}此处修改客户端字段temperature修改值为12.3此处输入{"method":"setValue", "TagName":"temperature", "TagValue":12.3}  点击发布按钮

bcd8b2c811c3901e0a77e373e2bdc15d.png

查看值是否修改(modbus中值和变量列表中值都被修改)

2d025a3fa9e222222173911e950987a8.png

相关日志

65307ed650b734b7b3a137f0380644aa.png

扩展 python实现对数据的修改

import paho.mqtt.client as mqtt

# 连接成功回调

defon_connect(client, userdata, flags, rc):

print('Connected with result code 'str(rc))

client.subscribe('to_service')

# 消息接收回调

defon_message(client, userdata, msg):

print(msg.topic " "str(msg.payload))

client = mqtt.Client()

# 指定回调函数

client.on_connect = on_connect

client.on_message = on_message

# 建立连接

client.username_pw_set('用户名','密码')

client.connect('服务器地址', 1883, 60)

# 发布消息修改对象修改值

client.publish('to_client',payload='{"method":"setValue", "TagName":"T1", "TagValue":12}',qos=1)

client.loop_forever()


   Python paho-mqtt 模块使用   https://www.jianshu.com/p/ef546f476322  

运行程序查看数据变化

cd08e6d0f46391e6bbb9348947794d74.png
a84fff3630193312edd79728c08559ef.png

其它:

相关启动命令

启动mysql  systemctl start mysqld

启动EMQ   ./emqx/bin/emqx start

启动grafana:service grafana-server start

如果访问服务器IP:端口无法访问的情况

1.检查服务是否开启

2.centos下防火墙开启相关接口

查看命令

ed799d60e8eb407257e44848806c220e.png

开启相关端口例:开启tcp协议端口3306 firewall-cmd --permanent --add-port=3306/tcp


收起阅读 »

IG902连接公有MQTT测试平台

1.访问EMQ 平台的MQTT测试信息页面 网址:https://www.emqx.io/cn/mqtt/public-mqtt5-broker2.访问IG902的web管理界面,进入“边缘计算”,启动APP。3.配置设备列表,配置读取的设备协议及寄存器地址。...
继续阅读 »

1.访问EMQ 平台的MQTT测试信息页面 网址:https://www.emqx.io/cn/mqtt/public-mqtt5-broker

0bed8318de51609bcd45008b5e314bd7.png

2.访问IG902的web管理界面,进入“边缘计算”,启动APP。

950b3bae54f0294c5c93a6e9a0d830af.png


3.配置设备列表,配置读取的设备协议及寄存器地址。

eb95350a2340da3a61aa933abee7a8da.png

4.使用Modbus Slave 模拟数据。

e001f0a26d18eae750e0a81469f440f5.png

5.查看 IG设备读取状态

a0ce9f34487c343969b0fb95afe9b3b6.png


6.选择“设备管理>>云服务”,配置MQTT连接。

fd42ea3df075b27afd9d8bfd3045c62b.png  



7.配置脚本将数据上传至云端。

1)选择“云服务”,点击发布中的“+”。

4f0d0d2548b043c00c3ccb1b7ed136d2.png

2)配置相关的发布设置。

ce741d44c2724effc984b8cb191d3cb3.png

3)配置订阅脚本。

d4cf1a13d372f8e2d929e5689e329549.png

代码:

import logging
import json
def ctl_test(topic, payload, wizard_api): #定义订阅主函数
logging.info(topic) #打印订阅主题,假定topic为write/plc
logging.info(payload) #打印订阅数据,假定payload数据为{"method":"setValue", "TagName":"SP1", "TagValue":12.3}
payload = json.loads(payload) #反序列化订阅数据
if payload["method"] == "setValue": #检测是否为写入数据
message = {payload["TagName"]:payload["TagValue"]} #定义下发消息,包括下发的变量名称和变量值
wizard_api.write_plc_values(message) #调用wizard_api模块中的write_plc_values方法,将message字典中的数据下发至指定变量


相关脚本程序参考http://app.ig.inhand.com.cn/   


8.PC端使用MQTT客户端订阅相同的Topic,接收IG设备发送的数据。

1)使用MQTTBox 充当MQTT协议的客户端2。

a7bf3f7f7bff087851e0b473f383cd7b.png

2)订阅IG设备的发布主题。

82d666254af3efd2bd082a7d20f79105.png

3)查看数据

d025952b161cc4c102ae57ccefe2d834.png


4)测试下发数据到IG。

发布信息到客户端,填写对应客户端订阅主题,及修改字段 {"method":"setValue", "TagName":"字段名", "TagValue":修改值为} 此处修改客户端字段 temperature 修改值为12.3 此处输入{"method":"setValue", "TagName":" temperature ", "TagValue":12.3} 点击发布按钮 .

e1b7115b50e0f71f8a4bf12e91c78aa7.png

5)查看数据是否下发成功。注:如果下发未成功,1.确定该变量允许写入。2.根据日志查找其它原因。

74528a2b26aba5c232c72dcde979769f.png

收起阅读 »

IDE V3.0.4

集成Python开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软...
继续阅读 »
集成Python开发环境IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。

V3.0.3
1.修复在IG9设备无法安装第三方库的问题(jira RT-470).
2.修复一些台式电脑不能打包App的问题(jira RT-471).
3.修复py文件下重复的quick outline.

V3.0.2
1.IG902 pyapp增加签名机制。
2.新增Python编程系统API提示功能。
 

3.IG9工程编译运行时,自动创建/var/app/log/{project_name}文件夹。
4.手动连接设备时,填写默认用户名pyuser;点击历史连接时自动填充用户名和密码。
5.优化输出日志。

V3.0.4
1.修改IG9 APP生成模板.
2.删除本地API文件.

https://help.inhand.com.cn/article/category/IDE_OpenDevice 收起阅读 »

GreenGrassManager-V1.0.3

This document is about how to use AWS’s GreenGrass on InHand’s IG902. Since we has set the environment for GreenGrass in IG912, pr...
继续阅读 »


aws-green.png

This document is about how to use AWS’s GreenGrass on InHand’s IG902. Since we has set the
environment for GreenGrass in IG912, preinstalled the AWS SDK AWSIoTPythonSDK, you just
need to do a little. More importantly, in order to make things easy, we write an APP called
GreenGrassManager to manage GreenGrass, which automatically finishing some operations
and you don’t need to do it by yourself, Pay attention, when you do Model3 to Model6 in AWS
document, you should make sure your greegrass daemon process is running right in IG902. 收起阅读 »

OpenDeviceIDE V3.0.4

 #################################################### V3.0.4 2019-03-01 Platform: IR915 IG902 ####################################...
继续阅读 »
 ####################################################
V3.0.4 2019-03-01
Platform: IR915 IG902
###################################################
1.修改IG9 app生成模板
2.删除本地API文件

IED下载: 链接: https://pan.baidu.com/s/1DoX8YOKZe9qhSr3zY1rc6g  密码:q45r 收起阅读 »

IG900 的IO输入范围是多少?

IG902-H的IO如下:      1、数字量输入4路(可以定义每路为干接点或者湿节点输入):         支持干接点输入:电平0表示接地                         电平1表示开路           支持湿接点输入:电平0,0-3...
继续阅读 »
IG902-H的IO如下:
     1、数字量输入4路(可以定义每路为干接点或者湿节点输入):
        支持干接点输入:电平0表示接地
                        电平1表示开路
 
        支持湿接点输入:电平0,0-3VDC
                        电平1,10-30VDC
 
     2、数字量输出2路继电器:最大负荷,5A@30VDC或者250VAC
 
     3、模拟量输入2路:支持电流信号,0-20mA,4-20mA
                       支持电压信号,0-5VDC,0-10VDC
                       可以在以上4个量程中选择1个。 


WechatIMG70.png




IG900-IO排序图.png




IG900-IO排序图2.png


  收起阅读 »