Beijer ELECTRONICS MQTT Client JSON – iX хөгжүүлэгчийн скрипт модулийн хэрэглэгчийн гарын авлага
Beijer ELECTRONICS MQTT Client JSON - iX Хөгжүүлэгчийн Скрипт Модуль

Үйл ажиллагаа ба хэрэглээний талбар

Энэхүү баримт бичигт MQTT брокерын сэдвүүдэд хэрхэн бүртгүүлэх, мөн эдгээр сэдвүүдийн мэдээллийг нийтлэх талаар тайлбарласан болно. Энэ эксample нь 10-ыг агуулсан "MachineData" JSON объектыг ашигладаг Tags, DeviceId болон TimeStamp MQTT брокертой солилцох.

Энэ баримт бичгийн талаар

Энэхүү хурдан эхлүүлэх баримт бичгийг бүрэн гарын авлага гэж үзэх ёсгүй. Энэ нь энгийн програмыг хурдан бөгөөд хялбар эхлүүлэхэд туслах хэрэгсэл юм.

Зохиогчийн эрх © Beijer Electronics, 2021
Энэхүү баримт бичиг (доорх "материал" гэж нэрлэнэ) нь Beijer Electronics-ийн өмч юм. Эзэмшигч эсвэл хэрэглэгч нь материалыг ашиглах онцгой эрхгүй. Эзэмшигч нь тухайн материал нь эзэмшигчээс үйлчлүүлэгчдээ нийлүүлдэг системийн нэг хэсэг болохоос бусад тохиолдолд тухайн материалыг өөрийн байгууллагаас гадуур хэн нэгэнд тараахыг хориглоно. Материалыг зөвхөн Beijer Electronics-ээс нийлүүлсэн бүтээгдэхүүн эсвэл програм хангамжид ашиглаж болно. Beijer Electronics нь материалд гарсан аливаа согог, материалыг ашигласнаас үүдэн гарч болох үр дагаварт хариуцлага хүлээхгүй. Материал дээр суурилсан эсвэл агуулсан аливаа систем (бүхэл бүтэн эсвэл хэсэгчлэн) хүлээгдэж буй шинж чанар, функциональ шаардлагыг хангасан эсэхийг баталгаажуулах нь эзэмшигчийн үүрэг юм. Beijer Electronics нь эзэмшигчид шинэчилсэн хувилбарыг нийлүүлэх үүрэг хүлээхгүй.

Тогтвортой программыг олж авахын тулд дараах техник хангамж, програм хангамж, драйверууд болон хэрэгслүүдийг ашиглана уу.

Энэхүү баримт бичигт бид дараах программ хангамж, техник хангамжийг ашигласан болно

  • iX Хөгжүүлэгч 2.40 SP5 / SP6
  • X2 baseV2/pro/marine/control/extreme series, C2, PC төхөөрөмжүүд

Нэмэлт мэдээллийг эндээс авна уу

  • iX Хөгжүүлэгчийн лавлах гарын авлага (MAxx831)
  • iX Хөгжүүлэгчийн хэрэглэгчийн гарын авлага (MAxx832)
  • Beijer Electronics мэдээллийн сан, HelpOnline
    Энэхүү баримт бичиг болон бусад хурдан эхлүүлэх баримт бичгүүдийг манай нүүр хуудаснаас авах боломжтой. Хаягийн дэмжлэгийг ашиглана уу.europe@beijerelectronics.com санал хүсэлтийн хувьд.

Eclipse Mosquitto™

Eclipse Mosquitto ™ бол нээлттэй эхийн MQTT брокер юм. https://mosquitto.org/download/ Суулгасны дараа үйлчилгээнүүд рүү очиж, Mosquitto-н эхлүүлэх төрлийг "Автомат" гэж тохируулсан эсэхийг шалгана уу, энэ нь Windows дээр автоматаар ажиллаж эхэлдэг гэсэн үг юм. Суулгасны дараа та Windows-г дахин эхлүүлэх эсвэл Mosquitto-г гараар эхлүүлэх хэрэгтэй.

Орон нутгийн үйлчилгээ

Windows хяналтын самбараас "Програмыг зөвшөөрөх ..." хэсэгт очно уу.

Гэрийн хяналтын самбар

Бүх төрлийн сүлжээний mosquitto.exe-д хандахыг зөвшөөрөх

Тохиргоог өөрчлөх
Шумуулыг турших
Зурвас нийтлэхийн тулд CMD-г эхлүүлээд Mosquitto лавлах руу өөрчил.

  • mosquitto_pub.exe файлыг ашиглан тодорхой сэдвээр мессеж нийтлээрэй.
  • -t параметр нь Test/Message сэдвийг зааж өгдөг
  • -m параметр нь "Сайн уу" гэсэн мессежийг заана.

Windows систем

  • Нэг буюу хэд хэдэн сэдвээр бүртгүүлэхийн тулд mosquitto_sub.exe-г ашиглана уу
  • Параметр нь таны -h 127.0.0.1-д холбогдохыг хүсэж буй хост(брокер)-ыг зааж өгнө.
  • Параметр нь -p 1883 портыг зааж өгдөг
  • Параметр нь сэдэв(үүд)-ийг зааж өгнө -t Тест/#
  • # гэдэг нь таныг Туршилтын сэдвийн бүх дэд сэдвүүдэд бүртгүүлнэ гэсэн үг

M2Mqtt болон Json номын сан

iX 2.40 SP4 хувилбараас хойш M2Mqtt.NetCf35.dll болон Newtonsoft.Json.Compact.dll нь iX суулгацад багтсан болно.
Тэдгээр нь таны iX суулгацын ..\Bin\Extensions дэд хавтасанд байрладаг.

Төсөлдөө номын сангуудыг оруулаарай
M2Mqtt.NetCf35.dll болон Newtonsoft.Json.Compact.dll-ийг төсөлдөө лавлагаа ассемблей болгон нэмнэ үү.

номын сангууд таны төсөлд

Брокертой холбогдоно уу
MqttClient ангийн шинэ жишээ үүсгэнэ үү: static string sMqttBroker = “127.0.0.1”; // “192.168.99.123”; // “BE526KFN” // “localhost” статик MqttClient mqttClient;
MqttClient ангиллын бүтээгчийн хамгийн энгийн хэт ачаалалд зөвхөн MQTT брокер хэрэгтэй URL протокол (энэ нь TCP) болон портыг (өгөгдмөл нь 1883) заагаагүй параметр болгон; Энэ нь хостын нэр эсвэл IP хаяг байж болно. Та зааж өгөхөд ашиглаж болох өөр хэт ачаалал байдаг:

  • Өөр порт (TLS/SSL холболтын хувьд стандарт 1883 эсвэл 8883 биш)
  • Брокер руу TLS/SSL холболт хийхэд шаардлагатай X509 сертификат (дараах хэсгүүдэд үзэх болно)
  • Дээрх гэрчилгээний баталгаажуулалтын нэмэлт дуудлага

“SCM_MQTT_Client” скрипт модулийн Created аргын дотор шинэ MqttClient жишээ үүсгэнэ үү.

хүчингүй болсон SCM_MQTT_Client_Created(System.Object илгээгч, System.EventArgs e){ mqttClient = new MqttClient(sMqttBroker);
// Сертификат ашиглах үед .Net компакт хүрээтэй X2 цуврал төхөөрөмжүүдэд доорх хэт ачааллыг ашиглах шаардлагатай
// байт[] certBytes = УншихFileToByteArray(@”C:\Users\310208195\root.crt”);
// X509 гэрчилгээний гэрчилгээ = шинэ X509 гэрчилгээ(certBytes);
// mqttClient = шинэ MqttClient(sMqttBroker, 8883, үнэн, гэрчилгээ, гэрчилгээ, MqttSslProtocols.TLSv1_2);
// Сертификат ашиглах үед C2 цуврал эсвэл .Net бүрэн хүрээтэй PC Runtime-д доорх хэт ачааллыг ашиглаж болно.
// mqttClient = шинэ MqttClient(sMqttBroker, 8883, үнэн, шинэ X509Certificate(@”C:\Users\310208195\root.crt”), шинэ X509Certificate(@”C:\Users\310208195), MqttClient(sMqttBroker, 1) .TLSv2_XNUMX);

// Хүлээн авсан зурваст бүртгүүлнэ үү
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
m_Timer= шинэ цаг хэмжигч();
m_Timer.Enabled = үнэн;
m_Timer.Интервал = 2500; //ms
m_Timer.Tick += OnTimerTick;

Нэг буюу хэд хэдэн сэдвийг захиалж, брокерт холбогдоно уу
string[] sTopics = шинэ мөр[] {“Machine1”}; байт[] QOSбайт = шинэ байт[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE};
Сэдэв тус бүрийн QOS түвшинг зааж өгнө үү - "QOSbytes" массивын хэмжээ нь "sTopics" массивын хэмжээтэй тохирч байх ёстой!

public void mqttConnect(){ if (mqttClient.IsConnected) буцаах; string clientId = Guid.NewGuid().ToString(); mqttClient.Connect(clientId); // mqttClient сэдэвт бүртгүүлэх.Subscribe(sTopics, QOSbytes);

Json объектын тохиргоо
Json объектын тохиргоо болон цуваа/сериалчлалыг "SCM_JSON" скрипт модулийн дотор хийдэг. Тодорхойлолт хэсэгт Tag Массивыг зааж өгсөн. хувийн статик GlobalDataItem[] Machine1Tags = шинэ GlobalDataItem[ {

  • Глобалчууд.Tags.pubTemperature,
  • Глобалчууд.Tags.pubProducedPCS,
  • Глобалчууд.Tags.pubVoltage,
  • Глобалчууд.Tags.pubCurrent,
  • Глобалчууд.Tags.pubSpeed,
  • Глобалчууд.Tags.pubBatchName,
  • Глобалчууд.Tags.pubStatus,
  • Глобалчууд.Tags.pubPower,
  • Глобалчууд.Tags.pubOperatingHours,
  • Глобалчууд.Tags.pubAlarmsActive};

Өгөгдлийн бүтэц нь "MachineData" ангилалд тодорхойлогддог.
нийтийн анги MachineData{
нийтийн мөр DeviceId {авах; багц; }
нийтийн мөр TimeStamp {авах; багц; }
нийтийн объект[] Өгөгдөл { авах; багц; }
нийтийн MachineData(){}
нийтийн MachineData(мөр төхөөрөмжийн ID, DateTime timeStamp, объект[] өгөгдөл){
DeviceId = төхөөрөмжийн ID;
Цаг STamp = цагStamp.ToString();
Өгөгдөл = өгөгдөл;
}
}

Json объектыг сэдэвт нийтлэх
private bool mqttPublish(string sTopic, string sMessage){
bool bАмжилт = худал;
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
байт[] MessageBytes = enc.GetBytes(sMessage);
хэрэв (mqttClient.IsConnected){
mqttClient.Publish(sСэдэв, MessageBytes,
MqttMsgBase.QOS_LEVEL_ECACTLY_ONCE, худал);
bАмжилт = үнэн;
}
bАмжилтыг буцаах;
}

Энэ жишээндample JSON объект нь таймер ашиглан 2500 мс тутамд нийтлэгддэг.

private void OnTimerTick(System.Object Sender, EventArgs e){
Глобалчууд.Tags.mqttConnected.Value = mqttClient.IsConnected;
Глобалчууд.Tags.mqttBrokerTopics.Value = mqttClient.IsConnected? sMqttBroker +"
холбогдсон – Сэдвүүд: ” + string.Join(“;”, sStopics): “холбогдоогүй”;
хэрэв (mqttClient.IsConnected)
publishMessage(Globals.SCM_JSON.Create_JSON());
}
private void publishMessage(string sJSON){
хэрэв (Дэлхийн.Tags.EncryptMessage.Value)
sJSON = encryptMessage(sJSON);
mqttPublish(sTopics[0], sJSON);
}

Хүлээн авсан Json объектыг хүлээн авч, үнэлэх
хүчингүй болсон SCM_MQTT_Client_Created(System.Object илгээгч, System.EventArgs e){
…..
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
…..
private void client_receivedMessage(объект илгээгч, MqttMsgPublishEventArgs e){
// Хүлээн авсан мессежийг зохицуулах
стринг хүлээн авсанMessage =
System.Text.Encoding.Default.GetString(e.Message,0,e.Message.Length);
Глобалчууд.Tags.JSON_String.Value = хүлээн авсанMessage;
хэрэв (шалгахШифрлэлт(хүлээн авсанMessage))
acceptMessage = decryptMessage(receivedMessage);
Globals.SCM_JSON.Deserialize_JSON(receivedMessage);

Брокероос салгах
public void mqttDisconnect(){
// Сэдэв бүртгэлээ цуцлах
mqttClient.Бүртгэлийг цуцлах(sTopics);
хэрэв (mqttClient.IsConnected)
mqttClient.Disconnect();

Анхаар!

  • Програмыг хаахаас өмнө үйлчлүүлэгчээ салгахаа үргэлж анхаараарай!
  • Энэ эксample нь X2 baseV2/pro/marine/control/extreme series, C2 болон PC цуврал төхөөрөмжүүдэд сайн ажилладаг.
  • Програмдаа хэрхэн суулгах талаар доорх зааврыг дагана уу.

MQTT клиент болон Json цуваажуулалтын функцийг нэмж байна

Хэрэгжилт

  1. “SCM_MQTT_Client” скрипт модулийг импортлох, жишээ нь үзнэ үүample төсөл (iX_MQTT_Client_JSON_V1_0_0).
  2. “SCM_JSON” скрипт модулийг импортлох, жишээг үзнэ үүample төсөл (iX_MQTT_Client_JSON_V1_0_0).
  3. M2Mqtt.NetCf35.dll болон Newtonsoft.Json.Compact.dll-ийг төсөлдөө лавлагаа болгон нэмнэ үү (5 ба 5.1-ийг үзнэ үү).
  4. Дэлгэц импортлох, жишээг үзнэ үүample төсөл (iX_MQTT_Client_JSON_V1_0_0).
  5. -г нэмнэ үү Tags ба/эсвэл тохируулах Tags болон Өгөгдлийн төрлүүд.
  6. Дэлгэцийг өөрийн хэрэгцээнд тохируулна уу.
  7. Програмыг шилжүүлэх.
  8. Програмыг ажиллуул.

Төслийн хэсгүүдийг импортлох
iX төсөлдөө хавсаргасан дэлгэц болон скрипт модулийг нэмэхийн тулд дараах алхмуудыг дагана уу.
Төслийг импортлох

  1. Хавсаргасан эксийг задлахample ZIP-file түр хавтас руу.
  2. iX Developer-ийг эхлүүлж, төслөө ачаална уу.
  3. Project Explorer програмын зүүн доод буланд хулганы баруун товчийг дарна уу (зураг дээр 1.)
  4. Жагсаалтаас Импортыг сонгоно уу... (2. зураг дээр)
  5. ZIP-г задалсан түр хавтас руу очно уу.file болон SCM_MQTT_Client.neo-г сонгоод [Нээх] дээр дарна уу.
  6. ZIP-г задалсан түр хавтас руу очно уу.file SCM_JSON.neo-г сонгоод [Нээх] дээр дарна уу.
  7. Screen1.xaml-г сонгоод [Нээх] дээр дарна уу.
  8. Дууслаа!

Beijer Electronics-ийн тухай

Beijer Electronics бол бизнесийн чухал хэрэглээнд зориулсан үйл явцыг оновчтой болгохын тулд хүмүүс болон технологиудыг холбодог үндэстэн дамнасан, салбар хоорондын шинийг санаачлагч юм. Бидний саналд операторын харилцаа холбоо, автоматжуулалтын шийдэл, дижиталчлал, дэлгэцийн шийдэл, дэмжлэг орно. Хэрэглэгчдэд ээлтэй програм хангамж, техник хангамж, эд зүйлсийн интернетийн үйлчилгээний мэргэжилтнүүдийн хувьд бид танд сорилт бэрхшээлийг шилдэг шийдлээр даван туулах боломжийг олгож байна. Beijer Electronics нь Beijer Group компани юм. Beijer Group нь 1.6 онд 2019 тэрбум крон гаруй борлуулалт хийсэн бөгөөд NASDAQ OMX Nordic Stockholm Small Cap жагсаалтад BELE тэмдэгтээр бүртгэгдсэн байна. www.beijergroup.com

Бидэнтэй холбоо барина уу
Дэлхийн оффисууд болон дистрибьюторууд

Баримт бичиг / нөөц

Beijer ELECTRONICS MQTT Client JSON - iX Хөгжүүлэгчийн Скрипт Модуль [pdf] Хэрэглэгчийн гарын авлага
MQTT Client JSON iX хөгжүүлэгчийн скрипт модуль, JSON iX хөгжүүлэгчийн скрипт модуль, iX хөгжүүлэгчийн скрипт модуль, хөгжүүлэгчийн скрипт модуль, скрипт модуль, модуль

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *