Beijer ELECTRONICS MQTT Kliyan JSON – iX Developer Script Modil Gid Itilizatè
Beijer ELECTRONICS MQTT Kliyan JSON - iX Developer Script Modil

Fonksyon ak zòn nan itilize

Dokiman sa a eksplike kijan pou abònman nan sijè yon koutye MQTT epi tou pibliye done sou sijè sa yo. Ansyen sa aample itilize yon objè JSON "MachineData" ki gen 10 Tags, DeviceId ak TimeStamp pou fè echanj ak koutye MQTT la.

Konsènan dokiman sa a

Dokiman demaraj rapid sa a pa ta dwe konsidere kòm yon manyèl konplè. Li se yon èd pou kapab demaraj yon aplikasyon nòmal byen vit ak fasil.

Copyright © Beijer Elektwonik, 2021
Dokiman sa a (ki pi ba yo refere kòm 'materyèl la') se pwopriyete Beijer Electronics. Detantè a oswa itilizatè a gen yon dwa ki pa eksklizif pou itilize materyèl la. Detantè a pa gen dwa distribye materyèl la bay nenpòt moun ki andeyò òganizasyon li eksepte nan ka kote materyèl la fè pati yon sistèm detantè a bay kliyan li a. Materyèl la ka itilize sèlman ak pwodwi oswa lojisyèl Beijer Electronics apwovizyone. Beijer Electronics pa pran okenn responsablite pou nenpòt domaj nan materyèl la, oswa pou nenpòt konsekans ki ta ka rive nan itilizasyon materyèl la. Se responsablite detantè a pou asire ke nenpòt sistèm, pou kèlkeswa aplikasyon, ki baze sou oswa ki gen ladann materyèl la (si an antye oswa an pati), satisfè pwopriyete yo espere oswa kondisyon fonksyonèl. Beijer Electronics pa gen okenn obligasyon pou bay detantè a ak vèsyon ajou.

Sèvi ak pyès ki nan konpitè, lojisyèl, chofè ak sèvis piblik sa yo pou w ka jwenn yon aplikasyon ki estab:

Nan dokiman sa a nou te itilize lojisyèl sa yo ak pyès ki nan konpitè

  • iX Developer 2.40 SP5 / SP6
  • X2 baseV2 / pro / marin / kontwòl / ekstrèm seri, C2, aparèy PC

Pou plis enfòmasyon, gade nan

  • iX Developer Referans Manyèl (MAxx831)
  • Gid itilizatè iX Developer (MAxx832)
  • Beijer Elektwonik baz done konesans, HelpOnline
    Ou ka jwenn dokiman sa a ak lòt dokiman pou kòmanse rapid nan paj dakèy nou an. Tanpri itilize sipò adrès la.europe@beijerelectronics.com pou fidbak.

Eclipse Mosquitto™

Eclipse Mosquitto™ se yon koutye sous louvri MQTT. https://mosquitto.org/download/ Apre enstalasyon, ale nan sèvis yo epi tcheke si kalite demaraj Mosquitto a mete sou "Otomatik", ki vle di ke li kòmanse otomatikman ak Windows. Apre enstalasyon an ou swa gen rekòmanse Windows oswa kòmanse Mosquitto manyèlman.

Sèvis lokal

Nan panèl kontwòl Windows ale nan "Pèmèt yon app..."

Panèl kontwòl lakay ou

Pèmèt aksè a mosquitto.exe pou tout kalite rezo

Chanje anviwònman
Tès moustik
Pou pibliye yon mesaj kòmanse CMD epi chanje nan anyè Mosquitto.

  • Sèvi ak mosquitto_pub.exe pou pibliye yon mesaj pou yon sèten sijè.
  • Paramèt la -t presize sijè a Tès/Mesaj
  • Paramèt la -m presize mesaj la "Hallo"

Windows sistèm

  • Pou abònman nan youn oswa plizyè sijè itilize mosquitto_sub.exe
  • Paramèt la presize lame a (koutye) ke ou vle konekte ak -h 127.0.0.1
  • Paramèt la presize pò a -p 1883
  • Paramèt la presize sijè a (yo) -t Tès/#
  • # a vle di ke ou abònman nan tout sou-sijè nan Tès sijè a

M2Mqtt ak Json Bibliyotèk

Depi iX 2.40 SP4 M2Mqtt.NetCf35.dll ak Newtonsoft.Json.Compact.dll yo enkli nan enstalasyon iX la.
Yo sitiye nan subfolder ..\Bin\Extensions nan enstalasyon iX ou a.

Mete bibliyotèk yo nan pwojè w la
Ajoute M2Mqtt.NetCf35.dll ak Newtonsoft.Json.Compact.dll kòm Asanble referans nan pwojè ou a.

bibliyotèk nan pwojè ou a

Konekte ak yon koutye
Kreye yon nouvo egzanp nan klas MqttClient la: string static sMqttBroker = "127.0.0.1"; // "192.168.99.123"; // "BE526KFN" // "localhost" estatik MqttClient mqttClient;
Surcharge ki pi senp nan konstrukteur klas MqttClient la bezwen sèlman koutye MQTT la URL kòm paramèt san yo pa espesifye pwotokòl la (li nan TCP) ak pò a (defo a se 1883); li kapab yon non lame oswa yon adrès IP. Gen lòt surcharge ke ou ka itilize pou presize:

  • Yon pò diferan (pa estanda 1883 oswa 8883 pou koneksyon TLS/SSL)
  • Sètifika X509 ki nesesè pou yon koneksyon TLS/SSL ak koutye a (jan nou pral wè nan seksyon sa yo)
  • Rèl si ou vle pou validation sètifika pi wo a

Kreye yon nouvo egzanp MqttClient andedan metòd Created nan modil script "SCM_MQTT_Client".

void SCM_MQTT_Client_Created(System.Object sender, System.EventArgs e){ mqttClient = nouvo MqttClient(sMqttBroker);
// Surcharge ki pi ba a gen pou itilize pou aparèy seri X2 ak .Net fondasyon kontra enfòmèl ant lè w ap itilize yon sètifika
// byte[] certBytes = LiFileToByteArray(@"C:\Users\310208195\root.crt");
// X509Certificate sètifika = nouvo X509Certificate (certBytes);
// mqttClient = nouvo MqttClient (sMqttBroker, 8883, vre, sètifika, sètifika, MqttSslProtocols.TLSv1_2);
// Surcharge ki anba a ka itilize pou seri C2 oswa PC Runtime ak .Net plen fondasyon lè w ap itilize yon sètifika
// mqttClient = nouvo MqttClient(sMqttBroker, 8883, vre, nouvo X509Certificate(@”C:\Users\310208195\root.crt”), nouvo X509Certificate(@”C:\Users\310208195\rootttscolts”) .TLSv1_2);

// Enskri pou mesaj ou resevwa
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
m_Timer = nouvo Timer ();
m_Timer.Enabled = vre;
m_Timer.Interval = 2500; // ms
m_Timer.Tick += OnTimerTick;

Abònman nan youn oswa plizyè sijè epi konekte ak koutye a
string[] sTopics = nouvo string[] {“Machin1”}; byte[] QOSbytes = nouvo byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE};
Espesifye yon nivo QOS pou chak sijè - gwosè etalaj "QOSbytes" dwe anfòm gwosè etalaj "sTopics"!

public void mqttConnect(){ si (mqttClient.IsConnected) retounen; string clientId = Guid.NewGuid ().ToString (); mqttClient.Connect(clientId); // Abònman nan sijè mqttClient.Subscribe(sTopics, QOSbytes);

Konfigirasyon objè Json la
Konfigirasyon an ansanm ak serializasyon / deserializasyon nan objè Json yo fè andedan modil la script "SCM_JSON". Nan seksyon definisyon an Tag Se etalaj espesifye. prive estatik GlobalDataItem[] Machine1Tags = nouvo GlobalDataItem[ {

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

Estrikti done a defini andedan klas "MachineData".
klas piblik MachineData{
piblik fisèl DeviceId { get; mete; }
fisèl piblik TimeStamp { jwenn; mete; }
objè piblik[] Done { jwenn; mete; }
piblik MachineData(){}
piblik MachineData(string deviceId, DateTime timeStamp, objè[] done){
DeviceId = deviceId;
TimeStamp = tanStamp.ToString();
Done = done;
}
}

Pibliye objè Json nan yon sijè
private bool mqttPublish(string sTopic, string sMessage){
bool bSuccess = fo;
System.Text.ASCIIEncoding enc = nouvo System.Text.ASCIIEncoding ();
byte[] MessageBytes = enc.GetBytes(sMessage);
si (mqttClient.IsConnected){
mqttClient.Publish(sTopic, MessageBytes,
MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, fo);
bSiksè = vre;
}
retounen bSiksè;
}

Nan ansyen sa aampse objè a JSON pibliye chak 2500ms lè l sèvi avèk yon revèy.

prive anile OnTimerTick(System.Object Sender, EventArgs e){
Globals.Tags.mqttConnected.Value = mqttClient.IsConnected;
Globals.Tags.mqttBrokerTopics.Value = mqttClient.IsConnected? sMqttBroker +”
konekte – Sijè: ” + string.Join(“;”, sTopics): “pa konekte”;
si (mqttClient.IsConnected)
publishMessage(Globals.SCM_JSON.Create_JSON());
}
prive anile publishMessage(string sJSON){
si (Mondial.Tags.EncryptMessage.Value)
sJSON = cryptMessage (sJSON);
mqttPublish(sTopics[0], sJSON);
}

Resevwa ak evalye yon objè Json resevwa
void SCM_MQTT_Client_Created(System.Object emetteur, System.EventArgs e){
…..
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
…..
prive anile client_receivedMessage(objè moun k ap voye, MqttMsgPublishEventArgs e){
// Manyen mesaj ou resevwa
fisèl resevwaMessage =
System.Text.Encoding.Default.GetString(e.Message,0,e.Message.Length);
Globals.Tags.JSON_String.Value = resevwaMesaj;
si (tchekeAncryption(resevwaMesaj))
resevwaMessage = DecryptMessage (receivedMessage);
Globals.SCM_JSON.Deserialize_JSON(receivedMessage);

Dekonekte soti nan yon koutye
anile piblik mqttDisconnect(){
// Dezabòne sijè
mqttClient.Unsubscribe(sTopics);
si (mqttClient.IsConnected)
mqttClient.Disconnect();

Remake byen!

  • Toujou asire w ke w dekonekte kliyan an anvan ou fèmen aplikasyon an!
  • Ansyen sa aample travay byen pou X2 baseV2/pro/marine/control/ekstrèm seri, C2 ak PC seri aparèy.
  • Tanpri swiv direktiv ki anba yo kijan pou enstale nan aplikasyon w lan.

Ajoute kliyan MQTT ak fonksyonalite serializasyon Json

Aplikasyon

  1. Enpòte modil script "SCM_MQTT_Client" , gade egzanpample pwojè (iX_MQTT_Client_JSON_V1_0_0).
  2. Enpòte modil script "SCM_JSON" la, gade egzanpample pwojè (iX_MQTT_Client_JSON_V1_0_0).
  3. Ajoute M2Mqtt.NetCf35.dll ak Newtonsoft.Json.Compact.dll kòm asanble referans nan pwojè ou a (gade 5 ak 5.1).
  4. Enpòte ekran an, gade egzanpample pwojè (iX_MQTT_Client_JSON_V1_0_0).
  5. Ajoute la Tags ak/oswa ajiste Tags ak Kalite Done yo.
  6. Adapte ekran an ak bezwen ou yo.
  7. Transfere aplikasyon an.
  8. Kouri aplikasyon an.

Enpòte pati pwojè yo
Swiv etap sa yo pou ajoute ekran ki fèmen ak modil script la nan pwojè iX ou a:
Enpòte pwojè a

  1. Déballe ansyen ki anvlòp laample ZIP-file nan yon katab tanporè.
  2. Kòmanse iX Developer epi chaje pwojè ou a.
  3. Nan Project Explorer a, klike sou dwa-dwa nan kwen ki pi ba gòch (1. nan foto a)
  4. Nan lis la, chwazi Import... (2. nan foto a)
  5. Ale nan katab tanporè a, kote ou depake postal la.file epi chwazi SCM_MQTT_Client.neo, klike sou [Louvri].
  6. Ale nan katab tanporè a, kote ou depake postal la.file epi chwazi SCM_JSON.neo, klike sou [Louvri].
  7. Chwazi Screen1.xaml, klike sou [Louvri].
  8. Fè!

Konsènan Beijer Elektwonik

Beijer Elektwonik se yon inovatè miltinasyonal, kwa-endistri ki konekte moun ak teknoloji pou optimize pwosesis pou aplikasyon ki enpòtan pou biznis yo. Òf nou an gen ladan kominikasyon operatè, solisyon automatisation, dijitalizasyon, solisyon ekspozisyon ak sipò. Antanke ekspè nan lojisyèl, pyès ki nan konpitè ak sèvis ki fasil pou itilize pou Entènèt Endistriyèl bagay sa yo, nou pèmèt ou fè fas ak defi ou yo atravè solisyon avanse. Beijer Electronics se yon konpayi gwoup Beijer. Beijer Group gen yon lavant plis pase 1.6 milya dola SEK nan 2019 epi li sou lis NASDAQ OMX Nordic Stockholm Small Cap la anba ticker BELE. www.beijergroup.com

Kontakte nou
Biwo mondyal ak distribitè

Dokiman / Resous

Beijer ELECTRONICS MQTT Kliyan JSON - iX Developer Script Modil [pdfGid Itilizatè
MQTT Kliyan JSON iX Modil Script Developer, Modil Script Developer JSON iX, Modil Script Developer iX, Modil Script Developer, Modil Script, Modil

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *