2024年1月8日发(作者:)
2021
WTGNet-NCU
CNC智能采集网关
无锡望天观科技有限公司
目录
1 前言 .............................................................................................................................................................................. 1
1.1
网关介绍 ............................................................................................................................................................................ 1
2 硬件介绍 ....................................................................................................................................................................... 2
2.1
基本参数 ............................................................................................................................................................................ 2
2.2
有线网络 ............................................................................................................................................................................ 3
2.3
无线网络 ............................................................................................................................................................................ 3
2.4
4G网络 ............................................................................................................................................................................... 3
2.5
RS485 .................................................................................................................................................................................. 3
3 管理界面 ....................................................................................................................................................................... 4
3.1
网关介绍 ............................................................................................................................................................................ 4
3.2
网关流程 ............................................................................................................................................................................ 4
3.3
登陆 ................................................................................................................................................................................... 5
3.4
系统信息 ............................................................................................................................................................................ 6
3.5
网络配置 ............................................................................................................................................................................ 7
3.6
网关配置 ............................................................................................................................................................................ 8
3.6.1 网关信息 ....................................................................................................................................................................... 8
3.6.2 网关推送 ....................................................................................................................................................................... 9
3.7
调试工具 .......................................................................................................................................................................... 11
3.7.1 调试命令 ..................................................................................................................................................................... 11
3.7.2 实时日志 ..................................................................................................................................................................... 14
3.8
系统设置 .......................................................................................................................................................................... 15
3.8.1 设备控制 ..................................................................................................................................................................... 15
3.8.2 密码设置 ..................................................................................................................................................................... 16
3.8.3 授权设置 ..................................................................................................................................................................... 17
3.8.4 VPN
设置 ...................................................................................................................................................................... 17
4 通用MQTT ................................................................................................................................................................. 18
4.1
推送格式 .......................................................................................................................................................................... 18
4.2
JAVA
DEMO ........................................................................................................................................................................... 20
4.3
NET CORE
DEMO ................................................................................................................................................................... 23
4.4
PYTHON
DEMO ..................................................................................................................................................................... 26
4.5
GOLANG
DEMO ..................................................................................................................................................................... 27
5 API ............................................................................................................................................................................... 29
5.1
HTTP .................................................................................................................................................................................. 29
5.2
MQTT ................................................................................................................................................................................ 30
6 VPN ............................................................................................................................................................................. 31
6.1
简介 .................................................................................................................................................................................. 31
6.1.1 未授权 ......................................................................................................................................................................... 31
6.1.2 已授权 ......................................................................................................................................................................... 31
6.2
使用方法 .......................................................................................................................................................................... 32
6.2.1 映射设备使用方法 ..................................................................................................................................................... 34
6.2.2 桥接模式使用方法 ..................................................................................................................................................... 35
6.2.3 映射端口模式 ............................................................................................................................................................. 37
6.2.4 路由模式 ..................................................................................................................................................................... 38
6.2.5 特殊网络拓扑 ............................................................................................................................................................. 38
6.3
注意事项 .......................................................................................................................................................................... 39
7 边缘计算 .................................................................................................................................................................... 40
7.1
单变量计算 ...................................................................................................................................................................... 40
7.2
设备计算 .......................................................................................................................................................................... 42
7.3
内置方法 .......................................................................................................................................................................... 43
7.4
示例 .................................................................................................................................................................................. 45
8 MODBUS输出 ............................................................................................................................................................. 48
8.1
操作方法 .......................................................................................................................................................................... 48
8.2
协议解释 .......................................................................................................................................................................... 48
9 常见问题 .................................................................................................................................................................... 50
10 支持采集设备分类 ................................................................................................................................................... 51
10.1
CNC ................................................................................................................................................................................. 51
10.1.1 发那科(Fanuc) ........................................................................................................................................................... 51
10.1.2 西门子(Siemens) ....................................................................................................................................................... 53
10.1.3 三菱(Mitsubishi) ........................................................................................................................................................ 53
10.1.4 哈斯(Hass) ................................................................................................................................................................. 54
10.1.5 凯恩帝(knd) .............................................................................................................................................................. 54
10.1.6 海德汉 (Heidenhain) ........................................................................................................................................... 54
10.1.7 兄弟 (Brother) ...................................................................................................................................................... 54
10.1.8 广州数控 (GSK) ...................................................................................................................................................... 54
10.1.9 新代 (Syntec) ........................................................................................................................................................ 54
10.2
PLC .................................................................................................................................................................................. 56
10.2.10 ModBus ..................................................................................................................................................................... 56
10.2.11 西门子(Siemens) ..................................................................................................................................................... 56
10.2.12 三菱(Mitsubishi) ..................................................................................................................................................... 56
10.2.13 欧姆龙(Omron) ....................................................................................................................................................... 56
10.2.14 罗克韦尔(AB) .......................................................................................................................................................... 56
10.3
ROBOT ............................................................................................................................................................................ 57
10.3.1 库卡(KUKA) ............................................................................................................................................................... 57
10.3.2 ABB ............................................................................................................................................................................. 57
11 点位地址 ................................................................................................................................................................... 55
11.1
FANUC ............................................................................................................................................................................... 55
11.2
MITSUBISHI ........................................................................................................................................................................ 59
11.3
SIEMENS ............................................................................................................................................................................ 62
11.4
KND ................................................................................................................................................................................. 64
11.5
BROTHER ........................................................................................................................................................................... 65
12 HTTP接口列表 ....................................................................................................................................................... 67
12.1
用户 ............................................................................................................................................................................... 67
12.2
采集设备列表请求 ........................................................................................................................................................ 68
13 售后服务 .................................................................................................................................................................. 75
13.1
技术服务和质保期服务计划 ....................................................................................................................................... 75
1 前言
1.1 网关介绍
工业数据采集网关,用于采集数控机床的生产数据,如报警信息,生产件数,电机温度,刀具号等关键信息。也可以实现机床的远程管理和程序下载。适用的领域有航天工业,车船制造业,工程机械,电子配件等工业领域。所采集到的数据可以灵活的发送到工业互联网平台进行深度分析,如产量分析,告警分析,排班计划,机床维护,刀具磨损预测等工作,进一步实现企业的工业信息化程度,提升产能,降本增效。
本网关专业采集各种主流CNC,PLC,机器人,目前支持Fanuc(发那科),Siemens(西门子)CNC,Mitsubishi(三菱)CNC,KND(凯恩蒂),GSK(广数)CNC,Heidenhain(海德汉),Citizen(西铁城),Brother(兄弟),Siemens(西门子)S7,Mitsubishi(三菱)MC,Omron(欧姆龙)Fins,Syntec(新代),Mod-busTCP/RTU等协议。
本网关程序使用C++开发,支持ARM,X86等各种CPU架构的Linux系统,可构建至中央服务器统一采集厂房所有联网设备,也可以构建于嵌入式主机,一对一采集单个设备,网关对外提供多种数据输出方式,包括MQTT,HTTP,Socket,ModbusServer,OPCUA等通讯协议,支持对接各大云平台,包括Thingsboard,联通Telit,移动OneNet,百度天工,航天云网,紫光云,翰云等。
本网关内置VPN服务,搭配VPN服务,可以提供高效安全的VPN服务,可以实现远程上下载程序锁机等功能。
本文档基于本公司配套硬件设施,其他硬件仅网络配置界面不同。 1 / 75
2 硬件介绍
本网关提供两个有线网口,可选型号支持WiFi和2G/3G/4G,同时提供一个485接口,电源为宽压电路,支持9-30V输入电压。
图1:网关外观图
2.1 基本参数
表1:基本参数
名称
尺寸
CPU
内存
NandFlash
标配参数
110.00mm*90.00mm*35.00mm
AM3352BZCZD60@600MHz
256MB DDR3
256MB SLC NandFlash
描述
长* 宽* 高
ARM Cortex-A8 架构,工业级温宽
工业级温宽:-40℃ +85℃
工业级温宽:-40℃ +85℃
2 / 75
2.2 有线网络
网关的两个网口,分别为NET0与NET1默认地址为:
表2:有线网络
网卡
NET0
NET0
NET1
NET1
地址
192.168.0.15/24
192.168.253.254/24
192.168.0.15/24
192.168.254.254/24
备注
不可修改, 永久有效
不可修改, 永久有效
2.3 无线网络
无线网络仅支持2.4G网络,不支持隐藏SSID,无线网络需要登陆之后在页面配置,使用WiFi网络需要检查天线是否正常。
2.4 4G网络
网关的两个网口,分别为NET0与NET1默认地址为:
表3:4G网络
G 灯高低电平状态
慢闪(200ms 高/1800ms 低)
慢闪(1800ms 高/200ms 低)
快闪(125ms 高/125ms 低)
模块工作状态
找网状态
待机状态
数据传输模式
2.5 RS485
485芯片为MAX485,最多支持接入32个485网络设备。 3 / 75
管3 管理界面
3.1 网关介绍
首次使用管理界面需要先确认电脑与网关的网络硬件连接正常,依据连接的网络接口不同和电脑设置的IP,可选择以下地址登陆:
⚫
⚫
⚫
⚫
NET0: http://192.168.0.15:9080
NET1: http://10.10.80.15:9080
NET0: http://192.168.253.254:9080
NET1: http://192.168.254.254:9080
此外,默认情况下VPN是连接的,如果插入4G卡使得网关拥有外网,也可以通过VPN管理后台的地址登陆。
3.2 网关流程
4 / 75
管3.3 登陆
用户名为admin,默认密码为password,建议登陆后修改密码。
图2:登录 5 / 75
3.4 系统信息
本页面可以显示网关的基本负载信息,包括CPU,内存,磁盘,网络等,可以通过右上角的网关信息推送开关,选择是否将网关信息推送到云平台。
图3:系统信息
6 / 75
3.5 网络配置
如图,根据不同硬件选配,网卡数量不同。
图4:网络配置
⚫ 有线网卡可以配置DHCP(动态获取IP地址)或静态IP地址;
⚫ 子网掩码表示方法为掩码长度,0-32位的数字,可以用子网掩码计算器计算;
⚫ 无线网络输入SSID和密码即可,如果需要禁用无线网络,清空输入即可;
⚫ 所有网络修改完必须重启设备,否则不会生效;
⚫ 所有网卡的网络配置必须保证IP地址不在同一网段,包括DHCP获取的IP和手动配置的静态IP;
⚫ eth0为net0,eth1为net1;
⚫ 4G 网络插卡断电重启即可, 无需配置 7 / 75
3.6 网关配置
3.6.1 网关信息
此处可以配置网关ID,网关ID应该是唯一的,很多协议内部会使用网关ID作为推送标识。
图5:网关信息 8 / 75
3.6.2 网关推送
目前支持多种平台推送,其他协议如有需求,联系售后,可持续迭代添加,修改推送后,需要重启服务生效。
图6:网关推送
协议文档 网关内置多种平台协议,通用MQTT为本公司定义的简易协议,文档参照通用MQTT协议其他协议文档参考平台官网。
自定义协议 采用 lua 脚本, 定义如下
-- function init()
config = {};
s = 'tcp://127.0.0.1:1883' al = 30
_id = 'test'
global_ = 'data/' .. global_y_id .. '/v1' return config
end
function gen_message(message) return message 9 / 75
end
function push_message(message) log(message)
push((message), global_)
end
function init_push(devices) end
反向控制 通用 MQTT 支持反向控制, 具体控制方法参照 API 接口 10 / 75
管3.7 调试工具
提供一些基本的调试工具,可以用来查看网关状态,以及判断失败原因等。
3.7.1 调试命令
获取IP地址 获取IP地址可以看到本机所以IP地址,其中eth0为net0br0/eth0为net1wlan0为
WiFi,eth2为4G,tap0为VPN。
图7:获取IP地址
Ping Ping可以是IP或者域名,可以选择网口。 11 / 75
管
图8:Ping
路由 路由为linux专业工具,需了解专业网络知识,可以查看当前网卡优先级别和路由状态。
图9:路由 12 / 75
端口测试 端口测试用来确定TCP端口是否开放,格式为192.168.0.15:22或:22。
图10:端口测试 13 / 75
3.7.2 实时日志
实时打印系统日志,注意,这个页面会无限获取日志,如果电脑性能不高,不要长时间待在这个页面。
图11:实时日志 14 / 75
管3.8 系统设置
提供通用的系统设置功能。
3.8.1 设备控制
起停一些网关扩展功能包括:
⚫ 路由器,模式将网关作为一个路由器,可以通过网关的网络上网;
⚫ Modbus服务将网关的数据以ModbusTcp输出;
⚫ OPC UA服务将网关数据以OPC UA方式输出;
图12:设备控制 15 / 75
3.8.2 密码设置
建议设置高强度密码,不要透漏给其他人。
图13:密码设置 16 / 75
3.8.3 授权设置
⚫ 设备指纹为设备唯一编码,设备授权基于设备指纹,如需更新设备授权,请联系售后;
⚫ 可采集数量当all>0时,为可以采集任意型号,总数不大于all;
⚫ 当all=0 时,为可采集以下任意设备,且采集的型号的总数不大于对应授权的数量;
图14:授权设置
3.8.4 VPN 设置
参见VPN章节。 17 / 75
4 通用MQTT
4.1 推送格式
通用MQTT为网关默认推送协议,推送主题为data/{gateway_id}/v1,gateway_id为网关信息里的网关ID,推送格式如下
[
{
"device_id": "Test", "ts":
32,
"device_type": "fanuc",
"values": [
{
"name": "cnc_products",
"value": 20559
},
{
"name": "cnc_type",
"value": "FANUC 0i MF"
},
{
"name": "device_state",
"value": 0
},
{
"name": "cnc_mecpos",
"value": [
{
"axis": "X",
"value": -84.4
},
{
"axis": "Y",
"value": 2.986
},
{
"axis": "Z",
"value": -108.181
}
]
},
18 / 75
{
"name": "cnc_alarm",
"value": [
{
"alarm_no": 1,
"alarm_type": "T01",
"alarm_msg": "待机中"
},
{
"alarm_no": 204,
"alarm_type": "XXX",
"alarm_msg": "急停"
}
]
}
]
}
] 19 / 75
4.2 Java Demo
Java 程序的解析 Demo
import ;
import ken; import
.*;
import ; import
ist;
import it;
class Alarm {
public String alarm_type; public
String alarm_msg; public int
alarm_no;
}
class Position { public String
axis;
public Double value;
}
class Value {
public String name; public
Object value;
}
class Root {
public String device_id; public
long ts;
public String device_type; public
Value[] values;
}
public class JavaDemo {
final static String TOPIC_NAME = "data/+/v1"; final static
String IP = "127.0.0.1";
final static int PORT = 1883;
public static void run() throws Exception { MQTT mqtt =
new MQTT(); 20 / 75
t(IP, PORT);
BlockingConnection connection = ngConnection();
t();
n("Connected to Broker!");
Topic[] topics = {new Topic(TOPIC_NAME, Y_ONCE)};
ibe(topics);
Type AlarmType = new TypeToken
}.getType();
Type PositionType = new TypeToken
}.getType(); while
(true) {
Message message = e(10, S); if
(message != null) {
Type RooList = new TypeToken
}.getType();
ArrayList
String(load()), RooList);
for (Root tt : table)
{ n(_id); for
(Value value : ) {
( + "t");
if ( instanceof ist) { if
(("cnc_alarm")) {
ArrayList
Gson().fromJson(ng(), AlarmType);
for (Alarm alarm : alarms) { ("nalarm_no:" +
_no +
"talarm_type:" + _type +
"talarm_msg:" + _msg);
}
} else {
ArrayList
for (Position axis : position) { ( + ":" + +
"t");
}
}
} else {
();
}
n(); 21 / 75
}
}
();
}
}
}
public static void main(String[] args) throws Exception { ();
}
} 22 / 75
4.3 Net core Demo
using System;
using MQTTnet;
using ;
using s; using
;
using c;
namespace dotnet_demo
{
public class Position
{
public string axis { set; get; } public string
value { set; get; }
}
public class Alarm
{
public int alarm_no { set; get; } public string
alarm_type { set; get; } public string alarm_msg
{ set; get; }
}
public class Values
{
public string name { get; set; } public
object value { get; set; }
}
public class Root
{
public string device_id { get; set; } public long ts
{ get; set; }
public string device_type { get; set; } public
List
}
class Program
{
static void Main(string[] args)
{
23 / 75
string topicSubscribe = "data/+/v1";
MqttClient mqttClient = new MqttFactory().CreateMqttClient() as MqttClient;
nectedHandler(async handle =>
{
var result = await ibeAsync(new MqttTopicFilter()
{
Topic = topicSubscribe,
QualityOfServiceLevel =
tOnce
});
});
licationMessageReceivedHandler(handle =>
{
var payload = ing(d);
List>(payload);
foreach (var m in table)
{
foreach (var s in )
{
( + "t");
if (typeof() == e())
{
if ( == "cnc_alarm")
{
List
alizeObject>( foreach (var
alarm in alarms)
{
ine("nalarm_no:" + _ng()
+ "talarm_type:" + _type + "talarm_msg:" +
_msg);
}
}
else
{
List
alizeObject>(s foreach (var
axis in pos)
24 / 75
{
( + ":" +
ng() + "t");
}
}
}
else
{
();
}
ine();
}
}
});
var options = new MqttClientOptionsBuilder()
.WithProtocolVersion(otocolVersion.V311)
.WithClientId(d().ToString().Substring(0, 5))
.WithTcpServer("127.0.0.1", 1883)
.WithCleanSession()
.Build();
tAsync(options);
y();
}
}
} 25 / 75
4.4 Python Demo
import json
import as mqtt
def on_connect(mqtt_client, userdata, flags, rc):
mqtt_ibe('data/+/v1')
def on_message(mqtt_client, userdata, msg): try:
table = (d) for tt in
table:
print(('device_id'))
for value in ('values'):
print(('name'), end='t') data =
('value')
if isinstance(data, list):
if ('name') == 'cnc_alarm': for alarm
in data:
print(
f'nalarm_no:{("alarm_no")}talarm_type:{("alarm_typ end='')
else:
for axis in data: print(f'{("axis")}:{("value")}', end='t')
else:
print(data, end='')
print('')
except Exception as e:
print(e)
mqtt_client = () mqtt__connect =
on_connect mqtt__message = on_message
mqtt_t('127.0.0.1', 1883, 60)
if name == ' main ':
mqtt__forever() 26 / 75
4.5 Golang Demo
package main
import (
"encoding/json"
"fmt"
mqtt "/eclipse/" uuid
"/satori/"
"time"
)
type Alarm struct {
AlarmType string `json:"alarm_type,omitempty"`
AlarmMsg string `json:"alarm_msg,omitempty"` AlarmNo
int64 `json:"alarm_no,omitempty"`
}
type Position struct {
Axis string `json:"axis,omitempty"` Value float64
`json:"value,omitempty"`
}
type Value struct {
Name string `json:"name,omitempty"` Value
interface{} `json:"value,omitempty"`
}
type Root struct {
DeviceId string `json:"device_id,omitempty"` DeviceType
string `json:"device_type,omitempty"` Ts int64 `json:"ts,omitempty"`
Values []Value `json:"values,omitempty"`
}
func reciveHandler(client , m e) { var messages
[]Root
_ = hal(d(), &messages) for _,
message := range messages {
n(Id)
for _, value := range
{ ( + "t") switch
.(type) {
case []interface{}:
if == "cnc_alarm" {
_alarm, _ := l() 27 / 75
var alarms []Alarm
_ = hal(_alarm, &alarms) for _,
alarm := range alarms {
("nalarm_no:dtalarm_type:stalarm_msg:s", o,
ype, sg)
}
} else {
_position, _ := l() var position
[]Position
_ = hal(_position, &position) for _,
axis := range position {
(" s:ft", , )
}
}
default:
()
}
n()
}
}
}
func main() {
topic := "data/+/v1"
address := "tcp://:1883" u1,
_ := 4()
opts := entOptions().AddBroker(address).SetClientID(()) c :=
ent(opts)
if token := t(); () && () != nil { panic(())
}
if token := ibe(topic, 0, reciveHandler); () && ()
!= nil { n(())
}
for {
(1 * 1000 * 1000)
}
} 28 / 75
5 API
5.1 HTTP
•
BASEURL: /api
登陆
请求
•
Method: POST
•
URL: /user/login
•
Headers:Content-Type:application/json
•
Body:
{
"username":"admin",
"password":"password"
}
返回
•
200
{
"username":"admin",
"password":"password"
}
•
400 请求参数错误
•
410 密码错误
详细API列表参考附录 29 / 75
5.2 MQTT
MQTTAPI是对HTTP的一层封装,但是基于MQTT的特性,需要将请求与返回分开
请求 topic为control/gateway_id/v1gateway_id为网关ID请求报文为:
{
"cmd_id": "uuid",
"method": "PUT",
"url": "/api/device/{device_name}/control_by_name", "data": {
"key": "M100",
"value": 1,
"value_type": 1
}
}
其中
•
cmd_id 为指令唯一编号, 建议用uuid, 返回主题的payload 会与之匹配
•
url 参考http api
•
method 参考http api
•
data 参考http api 的request body, 若无请求body, 请用”data”:null
返回
文为:
{
"cmd_id": "uuid",
"msg": "OK",
"ret": 0
}
其中
•
cmd_id 为指令唯一编号,与control 中的cmd_id匹配;
•
msg,请求返回值;
•
ret若请求成功,值为0, 若失败,参考http api 的http_statuscode。topic为echo/gateway_id/v1gateway_id为网关ID每次发完control主题后,都会有echo请求报 30 / 75
6 VPN
6.1 简介
6.1.1 未授权
未授权情况下用户只可选择是否启用VPN,启用VPN后可远程配置本网关,仅可以搭配本公司网关管理平台,关闭后,任何人将不能远程控制网关,对安全性有要求的公司,可以关闭VPN功能。
图15:未授权VPN
6.1.2 已授权
•
VPN已授权后可以映射采集设备, 使用自定义配置文件,以及使用桥接模式;
•
观云配置为本公司默认配置,可搭配本公司平台使用(推荐);
•
映射设备:地址为欲通过VPN控制的机床设备的IP地址,请确保在调试页面可以ping通,支持TCP和UDP点对点协议,不支持UDP广播,如需映射设备,需要将设备的默认网关(Default
Gateway,Fanuc中为路由器地址)设置为本网关的IP地址;
•
桥接模式:桥接模式启用后,VPN会转为交换机模式,所有连接在net1上的机床设备,与采集网关网关本身,与客户电脑的VPN网卡将处于同一虚拟交换机上.本方案适用于VPN批量机床设备,或者机床/PLC的控制协议非tcp协议的情况;
•
观云配置的密码为平台配置密码,需要与平台密码一致。 31 / 75
6.2 使用方法
如需使用授权VPN功能,首先联系客服获取平台账号,打开智能网关管理系统,首页有配置文件和软件,请根据自己的平台选择使用。
图16:平台首页
设备列表页面可以看到自己公司所有设备的状态,列表所示的IP地址即为采集网关的VPNIP地址,可以用这个地址管理网。 32 / 75
图17:设备列表 33 / 75
6.2.1 映射设备使用方法
1.
采集网关的VPN 页面将需要映射的设备的IP 地址填入映射IP 地址;
2.
需要被映射的设备的网络配置界面需要把Gateway 设置为采集网关的IP 地址;
然后就可实现采集网关到设备的映射,此时在连接了VPN的电脑上可直接对采集网关的VPNIP做机床/PLC上下载功能,即相当于对机床/PLC本身的操作。
图18:映射配置图 34 / 75
6.2.2 桥接模式使用方法
在采集网关的VPN页面,将桥接模式置于打开模式,即可使用VPN桥接模式,此方案比较复杂,适用于映射方案无法解决问题的时候。
本方案的核心为,将机床/PLC与用户置于同一交换机,所以需要用户手动配置IP地址,使网络可达,网络配置方法如下(如果不需要配置IP地址,可以跳过,直接用相关软件进行广播扫描)
图19:桥接配置图
◼ 桥接模式的IP地址设置有两种方式:
1) 修改机床 机床修改IP地址(推荐)
a) 在设备列表页面, 点击本次配置的网关的操作列,机床按钮,进入本网关的机床列表;
b) 填加机床后,会给机床分配一个机床IP,这个IP 在全网内都是不冲突的,可以安全使用;
c) 点击IP 地址,会出现完整的IP 配置参数;
d) 在机床的网络界面将本页面展现的网络参数填入,最主要的两个参数为IP地址和子网掩码,其他参数可以不设置(如果不需要配置IP地址,本条可以跳过);
e) 至此网络配置完成,如果配置了IP地址,可以直接操作机床;
35 / 75
2) 修改本机-如果机床已有自己的网络地址,不方便修改,可以通过修改电脑IP达成一个子网的目的
a) 在windows 网络中心找到VPN 的网卡, 驱动包含Tap 字段。
图20:机床IP
b) 打开cmd(也许需要管理员权限) 输入以下命令
netsh interface ip add address "以太网卡名" 255.255.255.0 #将以太网卡名替换为上一步查到的名称,IP地址按照自己的规则修改
可能的问题:
⚫ 如果有多台网关同时开启了桥接模式,有可能会导致机床IP冲突
⚫ 本方案填加的IP地址,会在VPN重连后丢失,每次重连需要重新配置 36 / 75
6.2.3 映射端口模式
1) 保证网关能ping通需要映射的设备,并且可以访问到需要转发的端口;
2) 采集网关的VPN页面填加需要映射的IP和端口;
3) 如下图所示,内部端口为自动生成,可以通过本网关的vpn地址加内部端口访问被映射的服务;
图21:映射端口模式 37 / 75
6.2.4 路由模式
1) 如下图打开设备控制界面
图22:路由模式
2) 启用路由器模式
3) 保证网关能ping 通需要访问的设备
4) 打开Windows 的cmd 命令框, 需要管理员模式输入以下命令
route add 192.168.1.0 mask 255.255.255.0 10.8.0.22
:: 192.168.1.0为需要路由的网段,也可以为单个IP
:: 255.255.255.0为需要路由的网段掩码,单个IP用255.255.255.255
:: 10.8.0.22 为网关的VPN IP
5) 设置完成即可直接访问设备的内部IP, 如以上配置下的192.168.1.x。
6.2.5 特殊网络拓扑
联系售后人员指导配置。 38 / 75
6.3 注意事项
1)
VPN可直接打通企业内网,如果对安全性要求很高,需谨慎操作;
2)
如需私有部署网关管理平台,请联系商务;
3)
由于VPN服务的数据流量会过服务器,必定会导致延迟过高,对于低延迟场景,避免使用VPN; 39 / 75
7 边缘计算
本网关提供基础的边缘计算功能,边缘计算暂时支持每个变量的独立计算与单个设备所有变量同时参与计算两种。
关于Lua语法,参见Lua教程。
7.1 单变量计算
规则 单个变量脚本支持两个输入参数,函数名必须为calc,参数变量名可以自行决定
function calc(current,last)
--[[
current:
本次采集到的值,注意,此处的值有可能为数字,字符串,array,table等Lua数据类型,需要根据不同变量做判
last: 上次采集到的值,如果为第一次采集则为空
return: 计算完返回的变量,可以为数字,array,table,字符串等如果脚本错误,上报的数据为错误内容
]]
current=current+1
return current
end
测试 如图,当前值输入脚本的第一个参数,上次值输入脚本的第二个参数,然后输入脚本,执行后,输出里即可得到return的值;
注意,如果输入值为数字,则直接输入数字,如果输入值为字符串,则输入带引号的字符串,如果输入值为table,则输入json格式;
配置 在采集配置编辑与添加页面,可以针对变量配置脚本,如下图,选择对应的变量,在脚本框输入经过测试的脚本即可。 40 / 75
图23:单变量测试
图24:单变量配置 41 / 75
7.2 设备计算
规则 设备计算脚本支持一个输入参数,函数名必须为calc,参数变量名可以自行决定
function calc(value)
--[[
value: 本次所有采集到的变量,格式为一个table,可以使用变量名取到值
return: 计算完返回的变量,建议使用以输入相同的数据结构输出,否则可能会导致推送失败如果脚本错误,上报的数据内会增加一个为script_error的字段卖,内容为错误内容
]]
_status="正常"
return value
end
测试如图,全局变量输入脚本的参数,然后输入脚本,执行后,输出里即可得到return的值注意,输入为严格的json格式。
图25:设备计算测试
配置 在采集配置编辑与添加页面,可以针对变量配置脚本,如下图,选择对应的变量,在脚本框输入经过测试的脚本即可。 42 / 75
图26:设备计算配置7.3 内置方法
push_message(msg,topic)
--通过现有mqtt配置推送消息
--msg: 消 息
--topic:可选,默认为数据topic
set_key(key,value,persistant)
--写入缓存变量
--key: 变量名
--value: 值
--persistant: 是否持久化,0存入redis,1存入sqlite
del_key(key,persistant)
--删除缓存变量
--key: 变量名
--persistant: 是否持久化,0存入redis,1存入sqlite
get_key(key,persistant)
--获取缓存变量
--key: 变量名
43 / 75
--persistant: 是否持久化,0存入redis,1存入sqlite
--return: 变量的值
get_device_sim()
--获取设备sim卡信息
get_device_gps()
--获取设备GPS信息
44 / 75
7.4 示例
将 某个变量结果 +1
function calc(current,last)
current=current+1 return
current
end
将 某个变量结果追加一个字符串
function calc(current,last)
current=current .. "woody"
return current
end
联 合两个变量计算出新的变量
function calc(value)
if(_runstatus==1 and #_alarm>0) then
=2
end
return value
end
删 除某个变量
function calc(value)
_runstatus=nil
return value
end
将 Alarm 的 Array[Object] 展开成普通变量
{
"cnc_alarm": [
{
"alarm_no": 1, "alarm_type":
"T01",
"alarm_msg": "待机中"
45 / 75


发布评论