什么是neuron
Neuron 是一款開源的、輕量級工業(yè)協(xié)議網(wǎng)關(guān)軟件,支持?jǐn)?shù)十種工業(yè)協(xié)議的一站式設(shè)備連接、數(shù)據(jù)接入、MQTT 協(xié)議轉(zhuǎn)換,為工業(yè)設(shè)備賦予工業(yè) 4.0 時代關(guān)鍵的物聯(lián)網(wǎng)連接能力。
為什么選擇neuron
1. 開放源碼-核心框架和 Modbus 驅(qū)動的代碼在 LGPL 下授權(quán)。
2. 多種協(xié)議-支持訪問 20 多種工業(yè)協(xié)議,包括 Modbus、OPC-UA,以及更多。
3. 邊緣原生-實時運行以利用邊緣的超低延遲的工業(yè)數(shù)據(jù)處理。
4. 高性能-連接數(shù)百個工業(yè)設(shè)備,輕易地處理超過 10,000 個數(shù)據(jù)點。
5. 超輕量級-具有較低的內(nèi)存佔用,小于 10M,在低配置的硬件上運行。
6. 便攜式部署-可在 X86、ARM、RISC-V 和其他架構(gòu)的邊緣硬件上進行部署。
產(chǎn)品架構(gòu)
Neuron 是基于現(xiàn)代消息總線架構(gòu)設(shè)計的,具有高性能、可擴展性和可延伸性。
快速上手
Nruron服務(wù)器的部署
1. 下載
Neuron: 開源工業(yè)協(xié)議網(wǎng)關(guān)軟件 (neugates.io),從官方網(wǎng)站上點擊下載
選擇符合對應(yīng)服務(wù)器的安裝包或選擇docker部署
2. 安裝
此次演示通過二進制安裝包安裝.
(1) 首先將下載的安裝包上傳到服務(wù)器上,然后選擇合適位置創(chuàng)建文件夾方便統(tǒng)一管理
(2) 解壓壓縮包- tar -zxvf neuron-2.6.7-linux-amd64.tar.gz
(3)然后通過./neuron –d 啟動neuron.
(4)啟動neuron之后可以通過http://x.x.x.x:7000登錄到neuron的管理控制臺,初始用戶名密碼為admin 0000
(5) 登陸進入后可以通過右上角切換中文
此次演示選用modbus tcp作為北向設(shè)備連接協(xié)議,使用Modbus Slave模擬器模擬設(shè)備連接
1. 啟動modbus模擬器,配置存儲區(qū)為4區(qū),可支持讀寫操作
2. 選擇地址框輸入模擬數(shù)據(jù)
3. 配置完成后回到管理頁面選擇南向連接,選擇添加設(shè)備,插件選擇modbus tcp
4. 然后配置設(shè)備連接
配置完成后在工作狀態(tài)欄會顯示運行中
5. 點擊設(shè)備名進入組列表
6. 點擊創(chuàng)建創(chuàng)建分組
7. 創(chuàng)建完成后點擊組名進入點位列表點擊創(chuàng)建創(chuàng)建點位
8. 其中感嘆號前面1代表設(shè)備id后面40001代表地址位
9. 配置完成之后便可以在主頁數(shù)據(jù)監(jiān)控除查看設(shè)備上報數(shù)據(jù)
注意: 需要先選擇設(shè)備及分組
建立北向連接
本次演示通過mqttx客戶端來進行建立連接
1. 選擇北向應(yīng)用菜單,選擇添加應(yīng)用
2. 然后配置mqtt服務(wù)器地址及端口用以建立mqtt連接收發(fā)消息
3. 選擇應(yīng)用添加訂閱將設(shè)備上報消息發(fā)送值emqx服務(wù)器,再通過mqttx監(jiān)聽對應(yīng)topic接收消息
訂閱topic接收消息
通過mqttx客戶端連接emqx消息隊列,監(jiān)聽在創(chuàng)建北向應(yīng)用中創(chuàng)建分組時指定的topic,便可以接收到設(shè)備上報的消息
接收到的消息會在mqttx的頁面顯示
可通過查看消息內(nèi)容確定是否與模擬器上設(shè)置的值相同.
通過mqttx向neuron發(fā)送讀寫請求從而操作設(shè)備
讀請求
通過往固定的topic”/neuron/{node_name}/read/req”發(fā)送消息,來讀取指定的設(shè)備,指定點位的數(shù)據(jù)
消息格式:
{
"uuid": "bca54fe7-a2b1-43e2-a4b4-1da715d28eab",
"node": "modbus",
"group": "grp"
}
node: 某個南向節(jié)點名字。
group: 南向節(jié)點的某個組的名字。
uuid: 唯一的標(biāo)志,會在響應(yīng)中原樣返回用以區(qū)分對應(yīng)的請求。
注意:
topic中的node_name是北向應(yīng)用的名稱,消息中的node和group為南向設(shè)備的名稱和其中的分組,因為可能某些設(shè)備不支持讀取單個點位,所以neuron優(yōu)化了讀取,每次讀取一組點位.
讀響應(yīng)
固定的topic
”/neuron/{node_name}/read/resp”
消息格式:
{
"uuid": "bca54fe7-a2b1-43e2-a4b4-1da715d28eab",
"tags": [
{
"name": "tag0",
"value": 4,
},
{
"name": "tag1",
"error": 2014
}
]
}
其中tags便是這一組點位數(shù)據(jù)的集合,里面包含請求中指定組的所有點位一次完整的讀請求響應(yīng)流程
寫請求
Topic: 寫請求的topic是可以在創(chuàng)建北向應(yīng)用時自定義設(shè)置的
無固定的topic.
消息體:
{
"uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",
"node": "modbus",
"group": "grp",
"tag": "tag0",
"value": 1234
}
Uuid: 唯一的標(biāo)志,會在響應(yīng)中原樣返回用以區(qū)分對應(yīng)的請求。
Node: 某個南向節(jié)點名字。
Group: 南向節(jié)點的某個組的名字。
Tag: 要寫入的點位名字。
Value: 要寫入的值
寫響應(yīng)
Topic: 與請求topic相同都是自定義
消息體:
{
"uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",
"error": 0
}
uuid:與對應(yīng)請求的uuid相同,
error: 錯誤碼,為0則代表,寫入成功
一次完整的流程,再發(fā)送完寫請求之后可以通過模擬器查看值是否被更改了
一次寫多個
Topic與寫請求相同,只是消息體有所不同
消息體:
{
"uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",
"node": "modbus",
"group": "grp",
"tags": [
{
"tag": "tag0",
"value": 1234
},
{
"tag": "tag1",
"value": 5678
}
]
}
將單獨一個tag放入到了一個tags集合從而實現(xiàn)一次請求寫多個點位.
完整流程如下:
以上便是對于neuron的一些入門操作,如有不足望大家指正.