Beijer ELECTRONICS MQTT Client JSON – „iX“ kūrėjo scenarijaus modulio vartotojo vadovas
Beijer ELECTRONICS MQTT kliento JSON – iX kūrėjo scenarijaus modulis

Funkcija ir naudojimo sritis

Šiame dokumente paaiškinama, kaip užsiprenumeruoti MQTT brokerio temas ir skelbti šių temų duomenis. Šis buvęsample naudoja JSON objektą „MachineData“, kuriame yra 10 Tags, DeviceId ir TimeStamp keistis su MQTT brokeriu.

Apie šį dokumentą

Šis greitos pradžios dokumentas neturėtų būti laikomas išsamiu vadovu. Tai pagalbinė priemonė, leidžianti greitai ir lengvai paleisti įprastą programą.

Autorių teisės © Beijer Electronics, 2021
Ši dokumentacija (toliau vadinama „medžiaga“) yra „Beijer Electronics“ nuosavybė. Turėtojas arba naudotojas turi neišimtinę teisę naudoti medžiagą. Turėtojui neleidžiama platinti medžiagos niekam, nepriklausančiam savo organizacijai, išskyrus atvejus, kai medžiaga yra sistemos, kurią turėtojas pateikia savo klientui, dalis. Medžiaga gali būti naudojama tik su „Beijer Electronics“ tiekiamais produktais ar programine įranga. „Beijer Electronics“ neprisiima atsakomybės už jokius medžiagos defektus ar pasekmes, kurios gali kilti naudojant medžiagą. Turėtojas yra atsakingas už tai, kad visos sistemos, skirtos bet kokiam pritaikymui, kurios yra pagrįstos medžiaga arba kurią sudaro medžiaga (visa ar dalimis), atitiktų numatomas savybes arba funkcinius reikalavimus. Beijer Electronics neprivalo pateikti turėtojui atnaujintų versijų.

Norėdami gauti stabilią programą, naudokite šią aparatinę, programinę įrangą, tvarkykles ir paslaugų programas:

Šiame dokumente naudojome šią programinę ir techninę įrangą

  • iX Developer 2.40 SP5 / SP6
  • X2 baseV2/pro/marine/control/extreme series, C2, PC įrenginiai

Norėdami gauti daugiau informacijos, žr

  • „iX“ kūrėjo informacinis vadovas (MAxx831)
  • „iX“ kūrėjo vartotojo vadovas (MAxx832)
  • Beijer Electronics žinių duomenų bazė, HelpOnline
    Šį dokumentą ir kitus greitos pradžios dokumentus galite rasti mūsų pagrindiniame puslapyje. Prašome naudoti adreso palaikymą.europe@beijerelectronics.com už atsiliepimus.

Eclipse Mosquitto™

Eclipse Mosquitto™ yra atviro kodo MQTT brokeris. https://mosquitto.org/download/ Įdiegę eikite į tarnybas ir patikrinkite, ar Mosquitto paleisties tipas nustatytas į „Automatinis“, o tai reiškia, kad jis automatiškai paleidžiamas naudojant „Windows“. Įdiegę turite iš naujo paleisti „Windows“ arba paleisti „Mosquitto“ rankiniu būdu.

Aptarnavimas vietinis

„Windows“ valdymo skydelyje eikite į „Leisti programą...“

Valdymo pulto namai

Suteikite prieigą prie mosquitto.exe visų tipų tinklams

Pakeiskite nustatymą
Mosquitto testavimas
Norėdami paskelbti pranešimą, paleiskite CMD ir pakeiskite į Mosquitto katalogą.

  • Naudokite mosquitto_pub.exe, kad paskelbtumėte pranešimą tam tikra tema.
  • Parametras -t nurodo temą Testas/Message
  • Parametras -m nurodo pranešimą „Hallo“

Windows sistema

  • Norėdami užsiprenumeruoti vieną ar kelias temas, naudokite mosquitto_sub.exe
  • Parametras nurodo pagrindinį kompiuterį (tarpininką), prie kurio norite prisijungti -h 127.0.0.1
  • Parametras nurodo prievadą -p 1883
  • Parametras nurodo temą (-as) -t Test/#
  • # reiškia, kad užsiprenumeruojate visas temos Testas potemes

M2Mqtt ir Json biblioteka

Nuo iX 2.40 SP4 M2Mqtt.NetCf35.dll ir Newtonsoft.Json.Compact.dll yra įtraukti į iX diegimą.
Jie yra jūsų „iX“ diegimo poaplanke ..\Bin\Extensions.

Į savo projektą įtraukite bibliotekas
Pridėkite M2Mqtt.NetCf35.dll ir Newtonsoft.Json.Compact.dll kaip nuorodas į savo projektą.

bibliotekas į savo projektą

Prisijunkite prie brokerio
Sukurkite naują MqttClient klasės egzempliorių: statinė eilutė sMqttBroker = "127.0.0.1"; // „192.168.99.123“; // "BE526KFN" // "localhost" statinis MqttClient mqttClient;
Paprasčiausiai MqttClient klasės konstruktoriaus perkrovai reikia tik MQTT brokerio URL kaip parametras, nenurodant protokolo (tai TCP) ir prievado (numatytasis yra 1883); tai gali būti pagrindinio kompiuterio pavadinimas arba IP adresas. Yra ir kitų perkrovų, kurias galite naudoti norėdami nurodyti:

  • Kitas prievadas (ne standartinis 1883 arba 8883 TLS / SSL ryšiui)
  • X509 sertifikatas, reikalingas TLS/SSL ryšiui su brokeriu (kaip matysime kituose skyriuose)
  • Neprivalomi atgaliniai skambučiai, norint patvirtinti aukščiau pateiktą sertifikatą

Sukurkite naują MqttClient egzempliorių scenarijaus modulio „SCM_MQTT_Client“ metodu „Sukurtas“.

void SCM_MQTT_Client_Created(System.Object sender, System.EventArgs e){ mqttClient = new MqttClient(sMqttBroker);
// Toliau nurodyta perkrova turi būti naudojama X2 serijos įrenginiams su .Net compact framework, kai naudojamas sertifikatas
// baitas[] certBytes = SkaitytiFileToByteArray(@"C:\Users\310208195\root.crt");
// X509Certificate sertifikatas = naujas X509Certificate(certBytes);
// mqttClient = new MqttClient(sMqttBroker, 8883, true, sertifikatas, sertifikatas, MqttSslProtocols.TLSv1_2);
// Toliau nurodyta perkrova gali būti naudojama C2 serijai arba PC Runtime su .Net visa sistema, kai naudojamas sertifikatas
// mqttClient = naujas MqttClient(sMqttBroker, 8883, true, new X509Certificate(@”C:\Users\310208195\root.crt”)), naujas X509Sertifikatas(@”C:\Users\310208195”) Mqtcoll. .TLSv1_2);

// Užsiregistruokite, kad gautumėte pranešimą
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
m_Timer= new Timer();
m_Timer.Enabled = tiesa;
m_Laikmatis.Intervalas = 2500; //ms
m_Timer.Tick += OnTimerTick;

Prenumeruokite vieną ar kelias temas ir prisijunkite prie brokerio
string[] sTopics = nauja eilutė[] {"Mašina1"}; baitas[] QOSbaitai = naujas baitas[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE};
Kiekvienai temai nurodykite QOS lygį – „QOSbytes“ masyvo dydis turi atitikti „sTopics“ masyvo dydį!

public void mqttConnect(){ if (mqttClient.IsConnected) return; string clientId = Guid.NewGuid().ToString(); mqttClient.Connect(klientoId); // Prenumeruoti temą mqttClient.Subscribe(sTopics, QOSbytes);

Json objekto konfigūracija
Json objekto konfigūracija ir serializavimas / deserializavimas atliekami scenarijaus modulyje „SCM_JSON“. Apibrėžimo skyriuje Tag Masyvas nurodytas. privatus statinis GlobalDataItem[] Machine1Tags = naujas GlobalDataItem[ {

  • Globaliai.Tags.pubTemperature,
  • Globaliai.Tags.pubProducedPCS,
  • Globaliai.Tags.pubVoltage,
  • Globaliai.Tags.pubCurrent,
  • Globaliai.Tags.pubSpeed,
  • Globaliai.Tags.pubBatchName,
  • Globaliai.Tags.pubStatus,
  • Globaliai.Tags.pubPower,
  • Globaliai.Tags.pubOperatingHours,
  • Globaliai.Tags.pubAlarmsActive};

Duomenų struktūra yra apibrėžta klasėje „MachineData“.
viešoji klasė MachineData{
public string DeviceId { get; rinkinys; }
viešoji eilutė TimeStamp { gauti; rinkinys; }
viešasis objektas[] Duomenys { gauti; rinkinys; }
vieši MachineData(){}
public MachineData (eilutė įrenginio ID, dataLaikas laikasStamp, objekto[] duomenys){
DeviceId = įrenginio ID;
TimeStamp = Šv. laikasamp.ToString();
Duomenys = duomenys;
}
}

Paskelbkite Json objektą temoje
private bool mqttPublish(string sTopic, string sMessage){
bool bSėkmė = klaidinga;
System.Text.ASCIIEencoding enc = new System.Text.ASCIIEencoding();
baitas[] MessageBytes = enc.GetBytes(sMessage);
if (mqttClient.IsConnected){
mqttClient.Publish(sTopic, MessageBytes,
MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, klaidinga);
bSėkmė = tiesa;
}
grąžinti bSėkmę;
}

Šiame buvampJSON objektas skelbiamas kas 2500 ms naudojant laikmatį.

private void OnTimerTick(System.Object Sender, EventArgs e){
Globaliai.Tags.mqttConnected.Value = mqttClient.IsConnected;
Globaliai.Tags.mqttBrokerTopics.Value = mqttClient.IsConnected? sMqttBroker +"
prijungtas – Temos: ” + string.Join(“;”, sTopics): “neprisijungta”;
if (mqttClient.IsConnected)
publishMessage(Globals.SCM_JSON.Create_JSON());
}
private void publishMessage(eilutė sJSON){
jei (Globalai.Tags.EncryptMessage.Value)
sJSON = šifruoti pranešimą (sJSON);
mqttPublish(sTemos[0], sJSON);
}

Gaukite ir įvertinkite gautą Json objektą
void SCM_MQTT_Client_Created(System.Object sender, System.EventArgs e){
....
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
....
private void client_receivedMessage(objekto siuntėjas, MqttMsgPublishEventArgs e){
// Tvarkyti gautą pranešimą
eilutė gautaPranešimas =
System.Text.Encoding.Default.GetString(e.Message,0,e.Message.Length);
Globaliai.Tags.JSON_String.Value = gautas pranešimas;
jei (pažymėkite šifravimą (gautas pranešimas))
GautasPranešimas = decryptMessage(gautas pranešimas);
Globals.SCM_JSON.Deserialize_JSON(gautas pranešimas);

Atsijungti nuo brokerio
public void mqttDisconnect(){
// Atsisakyti temos prenumeratos
mqttClient.Unsubscribe(sTopics);
if (mqttClient.IsConnected)
mqttClient.Disconnect();

Pastaba!

  • Prieš uždarydami programą, visada atjunkite klientą!
  • Šis buvęsample puikiai tinka X2 baseV2/pro/marine/control/extreme series, C2 ir PC serijos įrenginiams.
  • Vadovaukitės toliau pateiktomis instrukcijomis, kaip įdiegti programą.

MQTT kliento ir Json serializacijos funkcijų pridėjimas

Įgyvendinimas

  1. Importuokite scenarijaus modulį „SCM_MQTT_Client“, žrampprojektas (iX_MQTT_Client_JSON_V1_0_0).
  2. Importuokite scenarijaus modulį „SCM_JSON“, žrampprojektas (iX_MQTT_Client_JSON_V1_0_0).
  3. Pridėkite M2Mqtt.NetCf35.dll ir Newtonsoft.Json.Compact.dll kaip nuorodas į savo projektą (žr. 5 ir 5.1).
  4. Importuokite ekraną, žrampprojektas (iX_MQTT_Client_JSON_V1_0_0).
  5. Pridėkite Tags ir (arba) pakoreguoti Tags ir duomenų tipai.
  6. Pritaikykite ekraną pagal savo poreikius.
  7. Perkelkite programą.
  8. Paleiskite programą.

Importuokite projekto dalis
Atlikite veiksmus, kad pridėtumėte ekraną ir scenarijaus modulį prie savo iX projekto:
Importuokite projektą

  1. Išpakuokite pridedamą example ZIP-file į laikiną aplanką.
  2. Paleiskite „iX Developer“ ir įkelkite projektą.
  3. „Project Explorer“ dešiniuoju pelės mygtuku spustelėkite apatiniame kairiajame kampe (1. paveikslėlyje)
  4. Sąraše pasirinkite Importuoti… (2. paveikslėlyje)
  5. Eikite į laikinąjį aplanką, kuriame išpakavote ZIP-file ir pasirinkite SCM_MQTT_Client.neo, spustelėkite [Atidaryti].
  6. Eikite į laikinąjį aplanką, kuriame išpakavote ZIP-file ir pasirinkite SCM_JSON.neo, spustelėkite [Atidaryti].
  7. Pasirinkite Screen1.xaml, spustelėkite [Open].
  8. Atlikta!

Apie Beijer Electronics

„Beijer Electronics“ yra daugianacionalinis, įvairių pramonės šakų novatorius, jungiantis žmones ir technologijas, kad optimizuotų procesus verslui svarbioms programoms. Mūsų pasiūlymas apima operatorių komunikaciją, automatizavimo sprendimus, skaitmeninimą, ekrano sprendimus ir palaikymą. Būdami pramoninio daiktų interneto programinės įrangos, aparatinės įrangos ir paslaugų ekspertai, įgaliname jus įveikti iššūkius pasitelkdami pažangiausius sprendimus. Beijer Electronics yra Beijer grupės įmonė. „Beijer Group“ 1.6 m. parduoda daugiau nei 2019 milijardo Švedijos kronų ir yra įtraukta į NASDAQ OMX Nordic Stockholm Small Cap sąrašą su žyma BELE. www.beijergroup.com

Susisiekite su mumis
Pasauliniai biurai ir platintojai

Dokumentai / Ištekliai

Beijer ELECTRONICS MQTT kliento JSON – iX kūrėjo scenarijaus modulis [pdfVartotojo vadovas
MQTT kliento JSON iX kūrėjo scenarijaus modulis, JSON iX kūrėjo scenarijaus modulis, iX kūrėjo scenarijaus modulis, kūrėjo scenarijaus modulis, scenarijaus modulis, modulis

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *