Hogyan küldhetünk adatokat gépekre az Edge-eszközökről a Node-RED és a Tulip címkék használatával?
  • 08 Jan 2025
  • 7 Elolvasandó percek
  • Közreműködők

Hogyan küldhetünk adatokat gépekre az Edge-eszközökről a Node-RED és a Tulip címkék használatával?


Cikk összefoglaló

Ismerje meg, hogyan használhatja a Tulip címkéket a Node-RED-ben, hogy natív módon küldjön adatokat az Edge eszközökről a Tulip gépekbe.

Az OS 50.1-től kezdődően a Tulip natívan támogatja a Tulip Edge eszközök gépi adatforrásként való használatát.

A Node-RED használatával tetszőleges "címkéket" hozhat létre az új tulip-tag csomóponttal, és adatokat küldhet ezekre a címkékre. Ezek a címkék automatikusan megjelennek az adott Edge Device alatt, mint adatforrás a gépi attribútumok leképezésekor.

Az új áramlásokban ajánlott a Tulip-tagok használata a gépi API-val szemben. A Tulip Tags lehetővé teszi, hogy a gépadatokat újrafelhasználható áramlások segítségével jelentse, amelyek eszközspecifikus módosítások nélkül megoszthatók az eszközök között, és kiküszöböli a gépi attribútumadatok másolásának-beillesztésének szükségességét a Machine API csomópontokba.

Áttekintés

Ez a cikk leírja, hogyan küldhet adatokat a Node-RED-ből a Tulip gépekhez a Tulip Edge eszközökön előre telepített új Tulip Tag csomópont használatával.

Ez az útmutató a következő lépéseken fog végigmenni:

Követelmények

A Tulip címkék létrehozásához rendelkeznie kell egy Tulip Edge eszközzel, amely:

  • támogatja a Node-RED-et (Edge MC vagy Edge IO)
  • engedélyezve van a Node-RED
  • a firmware verziója >= OS50

Felhasználói útmutató

Ez az útmutató a Node-RED munkafolyamatát mutatja be egy címke létrehozásához, adatok küldéséhez, majd bemutatja, hogyan lehet a címkét egy gépi attribútumhoz rendelni a Tulipban. Azt is leírjuk, hogyan lehet egyszerre több címkére írni (csak az OS 51 és újabb operációs rendszereknél).

Címkék létrehozása a Node-RED-ben

  1. Nyissa meg a Node-RED-et a Tulip Edge eszközén, és jelentkezzen be.

    1. *Hivatkozás a Node-RED eléréséhez: A Node-RED használata az Edge IO-n
    2. Ha OS50 vagy újabb operációs rendszert használ, akkor a Node-RED szerkesztő bal oldalsávjában megjelenik a Tulip Tag csomópont.

  1. Húzza a tulip-tag csomópontot a szerkesztőbe, majd kattintson rá duplán a csomópontszerkesztő megnyitásához. Látnia kell a "Tag List" (Címkék listája) tulajdonságot, amely szükséges - létre kell hoznia egy címke listát, amely tartalmazza az összes címkét ehhez az Edge Device-hez. Edge Device-enként csak egy taglistát hozhat létre. Kattintson a Szerkesztés gombra az új Címkéklista létrehozásához, amelyet az alábbiakban kiemelünk.

  1. A Tag List csomópontban annyi címkét hozhat létre, amennyit csak szeretne. Kattintson a +add gombra egy címke létrehozásához.

  1. Minden címke három részből áll: azonosító, címke és típus.

    1. Címke azonosítója: Ez egy kódszerű azonosító, amely azonosítja a címkét. A létrehozás után nem változhat. Érvényes karakterek a betűk, számjegyek (nem kezdődhet számmal) és az aláhúzás. Példák: part_count, myState1.
    2. Címkecímke: Ez az ember által olvasható címke, amelyet a címkéhez rendelhet. A címke átnevezéséhez egyszerűen frissítse a címkét (ne az azonosítót). Példa: Például: "Part Count".
    3. Típus: Az adattípus - karakterlánc, egész szám, lebegő vagy bólés. Meg kell egyeznie a leképezett gépi attribútum típusával.

  1. Ha végzett a címkék hozzáadásával, kattintson az Add gombra a módosítások megerősítéséhez, és térjen vissza az előző csomópontszerkesztőhöz. A mentés előtt győződjön meg róla, hogy nincs hiba.
NOTE

"Unmapped" is not an error, just a warning that you have not yet mapped the tag to a machine attribute in Tulip.

Adatok küldése a címkéknek a Node-RED-ben

Miután létrehozott egy címkelistát, a Címke kiválasztása legördülő lista automatikusan feltöltődik az összes címkével (az ember által olvasható címkék szerint).

  1. Válassza ki a csomóponthoz tartozó címkét.

  1. Ahhoz, hogy adatokat írjon erre a címkére, most üzeneteket kell küldenie erre a tulip-tag csomópontra. A csomópontnak küldött üzenetek hasznos terhe (azaz msg.payload) a címkébe íródik.

Az alábbiakban például egy Inject csomópontot kapcsoltunk össze msg.payload=0-val, amely a 0 egész számot írja a Part Count címkére.

Címkék hozzárendelése a gépi attribútumokhoz

Végül, ahhoz, hogy az adatokat a Tulipban megtekinthesse, meg kell látogatnia a Tulip webhelyét, és a címkét egy gépi attribútumhoz kell rendelnie.

  1. Navigáljon a gépek oldalára, válassza ki az adatokat küldeni kívánt gépet, és nyissa meg a Konfiguráció lapot. Látnia kell a Gépi attribútumok listáját; kattintson egy attribútumra a leképezéshez. Az Edge Device (a sorozatszám alapján) adatforrásként kell látnia. Ezt az adatforrást nem kell létrehoznia, automatikusan létrejön, amikor egy címkelistával ellátott áramlást telepít.
  2. Kattintson az edge eszközre a jobb oldalsávban, és bontsa ki a Node-RED mappát. Látnia kell az attribútummal azonos típusú attribútumokat. Kattintson a megfelelő attribútum melletti link gombra annak leképezéséhez.

  1. Az attribútum most már leképezve jelenik meg, a leképezett tag címkéjével, mint a Signal.

  1. Ezenkívül a Node-RED-ben a Tulip Tag csomópont státuszának "Unmapped"-ről "Connected"-re kell változnia.

  1. Ha adatokat írunk a címkére (azaz ebben a példában az "Inject" csomópontra kattintva), akkor a leképezett attribútumra vonatkozóan most már megjelennek az adatok.

Adatok küldése több címkének (haladó)

NOTE

This feature is only available on OS51 and later.

Lehetőség van egyszerre több címkére történő kötegelt írásra.

  1. A Node-RED-ben hozzon létre egy Tulip Tag csomópontot, és vegye ki a jelölőnégyzetet a Címke kiválasztása a listából opcióból.

  1. Az e csomóponthoz küldött bemeneti üzenet hasznos terhének mostantól tartalmaznia kell a címkék azonosítóinak és az írandó értékeknek a leképezését.Ha például 0 darabszámot szeretne írni a part_count azonosítóval rendelkező integer címkére, és "Running" állapotot a state azonosítóval rendelkező string címkére, akkor az üzenetének így kell hangzania:

msg.payload = { "part_count": 0, "state": "Running" }

Példa: A gép állapotának és alkatrészszámának kezelése Edge IO és Node-RED segítségével

Ez a példa az ebben a cikkben leírt Node RED könyvtárfolyamat frissített változata, amelyre a hardver beállításához érdemes hivatkozni: Gépállapotok és alkatrészszámok kezelése az Edge IO és a Node-RED segítségével.

Az alábbiakban frissítettük az áramlást, hogy a Machine Attribute csomópont helyett a Tulip Tag csomópontot használja. Ez az áramlás módosítás nélkül számos Edge-eszközre telepíthető.

  1. A Node-RED-ben importálja és telepítse a következő folyamatot:


## 65CCB8", "icon": "font-awesome/fa-arrows-v"},{"id": "d99ec5b3.e9dfb8", "type": "function", "z": "85d16074.518e2", "name": "Convert values with scale/offset", "func": "const scale = env.get('SCALE');\nconst offset = env.get('OFFSET');\nconst prop = env.get('PROPERTY');\nif (Array.isArray(msg[prop])) {\n msg[prop] = msg[prop].map((x) => (scale \* x + offset));\n} else {\n msg[prop] = scale \* msg[prop] + offset;\n}\nreturn msg;", "outputs":1, "noerr":0, "initialize":"", "finalize":"", "x":250, "y":60, "wires":[[]]},{"id": "71c9f8f2.7adf08", "type": "tab", "label": "Machine Visibility with Current Clamp and Breakbeam", "disabled":false, "info": "This library flow is a basic machine monitoring application to gain visibility in the machine's state and part count using a current clamp and breakbeam. A következő két Edge IO bemenetet követi:\n\n \* **Darabszám**: 0-nál kezdődik, és felfelé számol, amikor a GPIO Pin 1 magasra vált, például amikor egy töréssugár beindul. A "Reset Part Count" csomóponttal 0-ra állítható vissza. Az aktuális alkatrészszámot elküldi a Tulip Machine Attribute-nak, amikor az alkatrészszám változik. \n \n \* **A gép állapota**: A CR-3111 áramfogóval felügyelt gép RMS-áramát küldi az Edge IO differenciális ADC-be. Az effektív középérték leolvasás egy 1 s-os puffer adatot ad meg, amelyet 1 kHz-es frekvencián, 5 s-enként egyszeri mintavételezéssel vesz fel. A Node-RED-ben vagy a Tulip-ban beállítható egy küszöbérték, amely meghatározza a gép be-/kikapcsolt állapotát. "},{"id":"256235b9.3bb72a","type":"subflow:85d16074.518e2","z":"71c9f8f2.7adf08","name":"CR-3111 Scaling","env":[{"name":"PROPERTY","value":"data","type":"str"},{"name":"SCALE","value":"3000","type":"num"},{"name":"OFFSET","value":"0","type":"num"}],"x":800,"y":360,"wires":[["88390763.49ad58", "b594a80b.7".f3f18"]]},{"id":"daf59f31.d1ec8","type":"tulip-high-speed-analog","z":"71c9f8f2.7adf08","name":"Differential ADC Readings","analogConfig":"71b68226.a6568c","dataTypeIdx":"2","inputs":0,"mode":"continuous","dataMsgProperty":"data","refreshRate":"1","refreshFrames":"all","x":150,"y":380,"wires":[["96ef65ab.afba78"]]},{"id":"82a0d2e1.62cec","type":"inject","z":"71c9f8f2.7adf08","name":"Reset Part Count","props":[],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":130,"y":100,"wires":[["25bb1de8.b3e502"]]},{"id":"579dcfa3.596ad","type":"tulip-digital-input","z":"71c9f8f2.7adf08", "name": "Monitor Pin 1", "runMode": "continuous", "configMode": "static", "outputMode": "object", "refreshRate":1, "enabledPins":[true,false,false,false,false,false,false,false,false,false,false,false,false], "x":110, "y":160, "wires":[["27e78fe6.8e08c"]]},{"id":"27e78fe6.8e08c","type":"switch","z":"71c9f8f2.7adf08","name":"Filter for pinUp","property":"payload","propertyType":"msg","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":300,"y":160,"wires":[["f1b02903.a2f2b8"]]},{"id":"f1b02903.a2f2b8","type":"change","z":"71c9f8f2.7adf08", "name": "Increment Part Count", "rules":[{"t": "set", "p": "partCount", "pt": "flow", "to":"$flowContext('partCount') + 1", "tot": "jsonata"},{"t":"set","p":"payload","pt":"msg","to":"partCount","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":160,"wires":[["eed4e051.7bc12"]]},{"id":"25bb1de8.b3e502","type":"change","z":"71c9f8f2.7adf08", "name": "Set Part Count = 0", "rules":[{"t": "set", "p": "partCount", "pt": "flow", "to": "0", "tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":350,"y":100,"wires":[[]]},{"id":"dcb54611.9f7ca8", "type": "comment", "z": "71c9f8f2.7adf08", "name": "Monitor Part Count", "info": "Part Count = 0-val kezdődik és felfelé számol, amikor a GPIO Pin 1 magasra vált. Az alkatrészszám 0-ra állítható vissza a 'Reset Part Count' csomópontra kattintva. Az aktuális alkatrészszámot elküldi a konfigurált Tulip Machine Attribute-nak, amikor az alkatrészszám megváltozik. ", "x":130, "y":40, "wires":[]},{"id": "9ff956ce.4ee9b8", "type": "comment", "z": "71c9f8f2.7adf08", "name": "Monitor RMS Current", "info": "Egy CR-3111 áramfogóval felügyelt gép RMS áramát küldi az Edge IO differenciális ADC-be. Az RMS-értéket egy 1 s-os, 1 kHz-es frekvencián vett, 5 s-onként egyszer mintavételezett 1 s-os puffer adataihoz adja meg. A Node-RED-ben vagy a Tulipban beállítható egy küszöbérték a gép be-/kikapcsolt állapotának meghatározására. ","x":140,"y":320,"wires":[]},{"id":"96ef65ab.afba78","type":"switch","z":"71c9f8f2.7adf08", "name": "Filter 1/5 readings", "property": "numReadings", "propertyType": "flow", "rules":[{"t": "eq", "v":"4","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":380,"wires":[["41bac391.9beffc"],["78eb2b71.a4c2c4"]]},{"id":"41bac391.9beffc","type":"change","z":"71c9f8f2.7adf08","name":"Pass message","rules":[{"t":"set","p":"numReadings","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":360,"wires":[["256235b9.3bb72a"]]},{"id":"78eb2b71.a4c2c4","type":"change","z":"71c9f8f2.7adf08", "name": "Drop message & increment", "rules":[{"t": "set", "p": "numReadings", "pt": "flow", "to":"$flowContext('numReadings') + 1", "tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":400,"wires":[[]]},{"id":"88390763.49ad58","type":"switch","z":"71c9f8f2.7adf08","name":"Is Current > 100mA?","property":"data","propertyType":"msg","rules":[{"t":"gt","v":"0.1","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":540,"y":620,"wires":[["b0fc9af.9e90c68"],["b271da6d.f05098"]]},{"id":"53f44746.f831e8","type":"comment","z":"71c9f8f2.7adf08", "name": "Subflow to Calculate Machine State", "info": "Ez az alfolyamat engedélyezhető, hogy a konfigurált küszöbérték alapján kiszámítsa, hogy a gép ON vagy OFF állapotban van-e.\n\nA kiszámított állapotot stringként küldjük el egy gépi attribútumnak. Ezt a gépi attribútumot a Tulipban úgy kell konfigurálni, hogy szöveges attribútum legyen, és a deviceInfo attribútumot be kell másolni a Tulip Machine Attribute csomópontba.", "x":240, "y":620, "wires":[]},{"id": "b0fc9af.9e90c68","type":"change","z":"71c9f8f2.7adf08","name":"State = ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":600,"wires":[["a197e7f6.0d6c58"]]},{"id":"b271da6d.f05098","type":"change","z":"71c9f8f2.7adf08","name":"State = OFF","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":640,"wires":[["a197e7f6.0d6c58"]]},{"id":"eed4e051.7bc12","type":"tulip-tag","z":"71c9f8f2.7adf08","name":"","tagList":"58dfe1ff.615b","staticTag":true,"tagId":"part\_count","x":730,"y":160,"wires":[[]]},{"id":"b594a80b.7f3f18","type":"tulip-tag","z":"71c9f8f2.7adf08","name":"","tagList":"58dfe1ff.615b","staticTag":true,"tagId":"current","x":1020,"y":360,"wires":[[]]},{"id":"a197e7f6.0d6c58","type":"tulip-tag","z":"71c9f8f2.7adf08","name":"","tagList":"58dfe1ff.615b","staticTag":true,"tagId":"state","x":930,"y":620,"wires":[[]]},{"id":"80b0c03.326c84","type":"inject","z":"71c9f8f2.7adf08", "name": "Initialization", "props":[], "repeat":"", "crontab":"", "once":true, "onceDelay":0.1,"topic":"","x":110,"y":440,"wires":[["81df5e3e.f5126"]]},{"id":"81df5e3e.f5126","type":"change","z":"71c9f8f2.7adf08","name":"Initialize numReadings = 0","rules":[{"t":"set","p":"numReadings","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":440,"wires":[[]]},{"id":"71b68226.a6568c", "type": "tulip-high-speed-analog-config", "name": "Differential ADC RMS @ 1kHZ", "bufferSize": "1000", "frequency": "1000", "adcId":"0", "diffAdcResistor": "200", "enableTime":false, "enableFreq":false, "enableRMS":true, "enablePowerSpec":false},{"id": "58dfe1ff.615b", "type": "tulip-tag-list", "name": "Part-Making Machine Tags", "tags":[{"id": "part\_count", "label": "Part Count", "type": "integer"},{"id": "current", "label": "Current (RMS)", "type": "float"},{"id": "state", "label": "State", "type": "State", "type": "string"}]}]]


```2. Az áramlás a következőképpen néz ki:


![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Data%20to%20Machines%20from%20Edge%20Devices%20using%20Node-RED%20and%20Tulip%20Tags_566767267.png){height="" width="550"}


Az áramlás a következő Tulip Tag listával is rendelkezik:


![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Data%20to%20Machines%20from%20Edge%20Devices%20using%20Node-RED%20and%20Tulip%20Tags_566767339.png){height="" width="350"}


1. Ez az Edge Device három címkével rendelkező adatforrásként jelenik meg a Tulipban:


	1. Part Count: Part Count: Part Count: Part Count: Part Count: Part Count: Part Count: Part Count: Ahányszor a GPIO bemeneti pin 1 magasra kapcsol, növekszik. Feltételezi, hogy egy törőgerenda van csatlakoztatva erre a pinre.
	2. Current (RMS) (Áram (RMS)): A CR3111-3000 5 másodpercenkénti RMS-áramerősségének írása (amperben). Feltételezi, hogy ez az áramérzékelő a differenciális ADC-hez van csatlakoztatva.
	3. Állapot: "ON"-t jelent, ha az áram >100mA, és "OFF"-t, ha az áram <=100mA.Ezeket a címkéket a megfelelő gépi attribútumokhoz rendelheti a Tulipban:


![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Data%20to%20Machines%20from%20Edge%20Devices%20using%20Node-RED%20and%20Tulip%20Tags_566767591.png){height="" width="350"}


1. Az adatok akkor jelennek meg, amikor a szünetsugár váltogat, vagy amikor az aktuális értékek 5 másodpercenként frissülnek:


![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Data%20to%20Machines%20from%20Edge%20Devices%20using%20Node-RED%20and%20Tulip%20Tags_566767660.png){height="" width=""}




---

Megtalálta, amit keresett?


A [community.tulip.co](https://community.tulip.co/?utm_source=intercom&utm_medium=article-link&utm_campaign=all) oldalon is megteheti, hogy felteszi kérdését, vagy megnézheti, hogy mások is szembesültek-e hasonló kérdéssel! 


Hasznos volt ez a cikk?