
Beijer ELECTRONICS MQTT Client JSON – iX Developer Script Module ຄູ່ມືຜູ້ໃຊ້

ຫນ້າທີ່ແລະພື້ນທີ່ຂອງການນໍາໃຊ້
ເອກະສານນີ້ອະທິບາຍວິທີການຈອງຫົວຂໍ້ຂອງນາຍຫນ້າ MQTT ແລະຍັງເຜີຍແຜ່ຂໍ້ມູນໃນຫົວຂໍ້ເຫຼົ່ານີ້. ນີ້ example ນໍາໃຊ້ວັດຖຸ JSON “MachineData” ປະກອບດ້ວຍ 10 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. ຫຼັງຈາກການຕິດຕັ້ງ, ທ່ານຕ້ອງການ restart Windows ຫຼືເລີ່ມ Mosquitto ຄູ່ມື.

ໃນແຜງຄວບຄຸມ Windows ໄປ “ອະນຸຍາດແອັບ…”

ອະນຸຍາດໃຫ້ເຂົ້າເຖິງ mosquitto.exe ສໍາລັບທຸກປະເພດເຄືອຂ່າຍ

ທົດສອບຍຸງ
ເພື່ອເຜີຍແຜ່ຂໍ້ຄວາມເລີ່ມຕົ້ນ CMD ແລະປ່ຽນເປັນ Mosquitto directory.
- ໃຊ້ mosquitto_pub.exe ເພື່ອເຜີຍແຜ່ຂໍ້ຄວາມໄປຫາຫົວຂໍ້ໃດນຶ່ງ.
- ພາລາມິເຕີ -t ກໍານົດຫົວຂໍ້ການທົດສອບ / ຂໍ້ຄວາມ
- ພາລາມິເຕີ -m ກໍານົດຂໍ້ຄວາມ "Hello"

- ເພື່ອສະໝັກສະມາຊິກນຶ່ງ ຫຼືຫຼາຍຫົວຂໍ້ໃຫ້ໃຊ້ mosquitto_sub.exe
- ພາລາມິເຕີກໍານົດໂຮດ (ນາຍຫນ້າ) ທີ່ທ່ານຕ້ອງການເຊື່ອມຕໍ່ກັບ -h 127.0.0.1
- ພາລາມິເຕີກໍານົດພອດ -p 1883
- ພາລາມິເຕີກໍານົດຫົວຂໍ້ -t Test/#
- The # ຫມາຍຄວາມວ່າທ່ານສະຫມັກກັບຫົວຂໍ້ຍ່ອຍທັງຫມົດຂອງການທົດສອບຫົວຂໍ້
M2Mqtt ແລະ Json Library
ນັບຕັ້ງແຕ່ iX 2.40 SP4 M2Mqtt.NetCf35.dll ເຊັ່ນດຽວກັນກັບ Newtonsoft.Json.Compact.dll ແມ່ນລວມຢູ່ໃນການຕິດຕັ້ງ iX.
ພວກມັນຖືກຕັ້ງຢູ່ໃນໂຟເດີຍ່ອຍ ..\Bin\Extensions ຂອງການຕິດຕັ້ງ iX ຂອງທ່ານ.
ລວມຫ້ອງສະຫມຸດເຂົ້າໄປໃນໂຄງການຂອງທ່ານ
ຕື່ມການ M2Mqtt.NetCf35.dll ແລະ Newtonsoft.Json.Compact.dll ເປັນເອກະສານອ້າງອີງກັບໂຄງການຂອງທ່ານ.

ເຊື່ອມຕໍ່ກັບນາຍຫນ້າ
ສ້າງຕົວຢ່າງໃຫມ່ຂອງຊັ້ນ MqttClient: static string sMqttBroker = “127.0.0.1”; // “192.168.99.123”; // “BE526KFN” // “localhost” static MqttClient mqttClient;
ການໂຫຼດເກີນທີ່ງ່າຍດາຍທີ່ສຸດຂອງຕົວສ້າງຊັ້ນ MqttClient ຕ້ອງການພຽງແຕ່ນາຍຫນ້າ MQTT URL ເປັນພາລາມິເຕີໂດຍບໍ່ມີການລະບຸໂປໂຕຄອນ (ມັນແມ່ນ TCP) ແລະພອດ (ຄ່າເລີ່ມຕົ້ນແມ່ນ 1883); ມັນສາມາດເປັນຊື່ເຈົ້າພາບຫຼືທີ່ຢູ່ IP. ມີການໂຫຼດເກີນອື່ນໆທີ່ທ່ານສາມາດນໍາໃຊ້ເພື່ອກໍານົດ:
- ພອດອື່ນ (ບໍ່ແມ່ນມາດຕະຖານ 1883 ຫຼື 8883 ສໍາລັບການເຊື່ອມຕໍ່ TLS/SSL)
- ໃບຢັ້ງຢືນ X509 ທີ່ຈໍາເປັນສໍາລັບການເຊື່ອມຕໍ່ TLS/SSL ກັບນາຍຫນ້າ (ດັ່ງທີ່ພວກເຮົາຈະເຫັນໃນພາກຕໍ່ໄປນີ້)
- ທາງເລືອກການໂທກັບຄືນໄປບ່ອນສໍາລັບການກວດສອບໃບຢັ້ງຢືນຂ້າງເທິງ
ສ້າງຕົວຢ່າງ MqttClient ໃໝ່ພາຍໃນວິທີການສ້າງຂອງໂມດູນສະຄຣິບ “SCM_MQTT_Client”.
void SCM_MQTT_Client_Created(System.Object sender, System.EventArgs e){ mqttClient = new MqttClient(sMqttBroker);
// ການ overload ຂ້າງລຸ່ມນີ້ຕ້ອງໃຊ້ສໍາລັບອຸປະກອນຊຸດ X2 ທີ່ມີກອບຫນາແຫນ້ນ .Net ເມື່ອໃຊ້ໃບຢັ້ງຢືນ
// byte[] certBytes = ອ່ານFileToByteArray(@”C:\Users\310208195\root.crt”);
// X509Certificate certificate = new X509Certificate(certBytes);
// mqttClient = new MqttClient(sMqttBroker, 8883, true, certificate, certificate, MqttSslProtocols.TLSv1_2);
// ການ overload ຂ້າງລຸ່ມນີ້ສາມາດໃຊ້ສໍາລັບຊຸດ C2 ຫຼື PC Runtime ທີ່ມີກອບເຕັມ .Net ເມື່ອໃຊ້ໃບຢັ້ງຢືນ
// mqttClient = new MqttClient(sMqttBroker, 8883, true, new X509Certificate(@”C:\Users\310208195\root.crt”), new X509Certificate(@”C:\Users\310208195”),l. .TLSv1_2);
// ລົງທະບຽນກັບຂໍ້ຄວາມທີ່ໄດ້ຮັບ
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
m_Timer= ຈັບເວລາໃໝ່();
m_Timer.Enabled = true;
m_Timer.Interval = 2500; //ນາງສາວ
m_Timer.Tick += OnTimerTick;
ຈອງຫນຶ່ງຫຼືຫຼາຍຫົວຂໍ້ແລະເຊື່ອມຕໍ່ກັບນາຍຫນ້າ
string[] sTopics = new string[] {“Machine1”}; byte[] QOSbytes = new byte[] { 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
ການຕັ້ງຄ່າເຊັ່ນດຽວກັນກັບ serialization / deserialization ຂອງ Json object ແມ່ນເຮັດພາຍໃນໂມດູນສະຄິບ "SCM_JSON". ໃນພາກຄໍານິຍາມໄດ້ Tag Array ຖືກລະບຸ. GlobalDataItem ແບບສະຖິດສ່ວນຕົວ[] Machine1Tags = new GlobalDataItem[ {
- ທົ່ວໂລກ.Tags.pubTemperature,
- ທົ່ວໂລກ.Tags.pubProducedPCS,
- ທົ່ວໂລກ.Tags.pubVoltage,
- ທົ່ວໂລກ.Tags.pubCurrent,
- ທົ່ວໂລກ.Tags.pubSpeed,
- ທົ່ວໂລກ.Tags.pubBatchName,
- ທົ່ວໂລກ.Tags.pubStatus,
- ທົ່ວໂລກ.Tags.pubPower,
- ທົ່ວໂລກ.Tags.pubOperatingHours,
- ທົ່ວໂລກ.Tags.pubAlarmsActive};
ໂຄງສ້າງຂໍ້ມູນຖືກກໍານົດຢູ່ໃນຊັ້ນ "MachineData".
Public class MachineData{
ສະຕຣິງສາທາລະນະ DeviceId { ໄດ້ຮັບ; ຊຸດ; }
ສະຕຣິງສາທາລະນະ TimeStamp {ໄດ້ຮັບ; ຊຸດ; }
ວັດຖຸສາທາລະນະ[] ຂໍ້ມູນ {ໄດ້ຮັບ; ຊຸດ; }
Public MachineData(){}
Public MachineData(string deviceId, DateTime timeStamp, object[] data){
DeviceId = DeviceId;
ເວລາamp = ເວລາamp.ToString();
ຂໍ້ມູນ = ຂໍ້ມູນ;
}
}
ເຜີຍແຜ່ວັດຖຸ Json ກັບຫົວຂໍ້ໃດຫນຶ່ງ
bool ສ່ວນຕົວ mqttPublish(string sTopic, string sMessage){
bool bSuccess = false;
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
byte[] MessageBytes = enc.GetBytes(sMessage);
ຖ້າ (mqttClient.IsConnected){
mqttClient.Publish(sTopic, MessageBytes,
MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
bSuccess = ຈິງ;
}
ກັບຄືນ bSuccess;
}
ໃນນີ້ exampLe ວັດຖຸ JSON ຖືກເຜີຍແຜ່ທຸກໆ 2500ms ໂດຍໃຊ້ເຄື່ອງຈັບເວລາ.
ຫວ່າງເປົ່າສ່ວນຕົວ OnTimerTick(System.Object Sender, EventArgs e){
ທົ່ວໂລກ.Tags.mqttConnected.Value = mqttClient.IsConnected;
ທົ່ວໂລກ.Tags.mqttBrokerTopics.Value = mqttClient.IsConnected? sMqttBroker +”
ເຊື່ອມຕໍ່ – ຫົວຂໍ້: ” + string.Join(“;”, sTopics): “ບໍ່ໄດ້ເຊື່ອມຕໍ່”;
ຖ້າ (mqttClient.IsConnected)
PublishMessage(Globals.SCM_JSON.Create_JSON());
}
ຂໍ້ຄວາມທີ່ເປັນໂມຄະສ່ວນຕົວ Publish(string sJSON){
ຖ້າ (ທົ່ວໂລກ.Tags.ເຂົ້າລະຫັດຂໍ້ຄວາມ.ຄ່າ)
sJSON = ເຂົ້າລະຫັດຂໍ້ຄວາມ(sJSON);
mqttPublish(sTopics[0], sJSON);
}
ຮັບ ແລະປະເມີນວັດຖຸ Json ທີ່ໄດ້ຮັບ
void SCM_MQTT_Client_Created(System.Object sender, System.EventArgs e){
…..
mqttClient.MqttMsgPublishReceived += client_receivedMessage;
…..
private void client_receivedMessage(object sender, MqttMsgPublishEventArgs e){
// ຈັດການຂໍ້ຄວາມທີ່ໄດ້ຮັບ
string ໄດ້ຮັບMessage =
System.Text.Encoding.Default.GetString(e.Message,0,e.Message.Length);
ທົ່ວໂລກ.Tags.JSON_String.Value = ໄດ້ຮັບMessage;
ຖ້າ (checkEncryption(receivedMessage))
receiveMessage = decryptMessage(receivedMessage);
Globals.SCM_JSON.Deserialize_JSON(receivedMessage);
ຕັດການເຊື່ອມຕໍ່ຈາກນາຍຫນ້າ
void ສາທາລະນະ mqttDisconnect(){
// Unsubscribe ຫົວຂໍ້
mqttClient.Unsubscribe(sTopics);
ຖ້າ (mqttClient.IsConnected)
mqttClient.Disconnect();
ໝາຍເຫດ!
- ສະເຫມີໃຫ້ແນ່ໃຈວ່າຕັດການເຊື່ອມຕໍ່ລູກຄ້າກ່ອນທີ່ຈະປິດຄໍາຮ້ອງສະຫມັກ!
- ນີ້ example ເຮັດວຽກໄດ້ດີສໍາລັບ X2 baseV2/pro/marine/control/extreme series, C2 ແລະ PC series ອຸປະກອນ.
- ກະລຸນາປະຕິບັດຕາມຄໍາແນະນໍາຂ້າງລຸ່ມນີ້ວິທີການຕິດຕັ້ງໃນຄໍາຮ້ອງສະຫມັກຂອງທ່ານ.
ເພີ່ມ MQTT client ແລະຟັງຊັນ Json serialization
ການຈັດຕັ້ງປະຕິບັດ
- ນຳເຂົ້າໂມດູນສະຄຣິບ “SCM_MQTT_Client”, ເບິ່ງຕົວຢ່າງampຈາກໂຄງການ (iX_MQTT_Client_JSON_V1_0_0).
- ນຳເຂົ້າໂມດູນສະຄຣິບ “SCM_JSON”, ເບິ່ງຕົວຢ່າງampຈາກໂຄງການ (iX_MQTT_Client_JSON_V1_0_0).
- ຕື່ມການ M2Mqtt.NetCf35.dll ແລະ Newtonsoft.Json.Compact.dll ເປັນການປະກອບທີ່ອ້າງອີງໃສ່ໂຄງການຂອງທ່ານ (ເບິ່ງ 5 ແລະ 5.1).
- ນໍາເຂົ້າຫນ້າຈໍ, ເບິ່ງ exampຈາກໂຄງການ (iX_MQTT_Client_JSON_V1_0_0).
- ຕື່ມການ Tags ແລະ/ຫຼື ປັບ Tags ແລະປະເພດຂໍ້ມູນ.
- ປັບຫນ້າຈໍຕາມຄວາມຕ້ອງການຂອງທ່ານ.
- ໂອນຄໍາຮ້ອງສະຫມັກ.
- ດໍາເນີນການຄໍາຮ້ອງສະຫມັກ.
ນໍາເຂົ້າພາກສ່ວນໂຄງການ
ປະຕິບັດຕາມຂັ້ນຕອນທີ່ຈະເພີ່ມຫນ້າຈໍທີ່ປິດລ້ອມແລະໂມດູນ script ກັບໂຄງການ iX ຂອງທ່ານ:

- ຖອດຫໍ່ example ZIP-file ໄປທີ່ໂຟນເດີຊົ່ວຄາວ.
- ເລີ່ມ iX Developer ແລະໂຫຼດໂຄງການຂອງທ່ານ.
- ໃນ Project Explorer, ຄລິກຂວາໃສ່ມຸມຊ້າຍລຸ່ມ (1. ໃນຮູບ)
- ໃນລາຍການ, ເລືອກ Import… (2. ໃນຮູບ)
- ທ່ອງໄປຫາໂຟນເດີຊົ່ວຄາວ, ບ່ອນທີ່ທ່ານ unpacked ZIP-file ແລະເລືອກ SCM_MQTT_Client.neo, ຄລິກ [Open].
- ທ່ອງໄປຫາໂຟນເດີຊົ່ວຄາວ, ບ່ອນທີ່ທ່ານ unpacked ZIP-file ແລະເລືອກ SCM_JSON.neo, ຄລິກ [Open].
- ເລືອກ Screen1.xaml, ຄລິກ [Open].
- ສຳເລັດແລ້ວ!
ກ່ຽວກັບ Beijer Electronics
Beijer Electronics ເປັນຜູ້ປະດິດສ້າງຂ້າມຊາດ, ອຸດສາຫະກໍາຂ້າມຊາດທີ່ເຊື່ອມຕໍ່ຄົນ ແລະເຕັກໂນໂລຢີເພື່ອເພີ່ມປະສິດທິພາບຂະບວນການສໍາລັບຄໍາຮ້ອງສະຫມັກທີ່ສໍາຄັນທາງທຸລະກິດ. ການສະເຫນີຂອງພວກເຮົາປະກອບມີການສື່ສານຂອງຜູ້ປະຕິບັດງານ, ການແກ້ໄຂອັດຕະໂນມັດ, ດິຈິຕອນ, ໂຊລູຊັ່ນການສະແດງແລະການສະຫນັບສະຫນູນ. ໃນຖານະທີ່ເປັນຜູ້ຊ່ຽວຊານດ້ານຊອບແວ, ຮາດແວ ແລະການບໍລິການທີ່ເປັນມິດກັບຜູ້ໃຊ້ສໍາລັບ Internet of Things, ພວກເຮົາສ້າງຄວາມເຂັ້ມແຂງໃຫ້ທ່ານເພື່ອຕອບສະຫນອງຄວາມທ້າທາຍຂອງທ່ານໂດຍຜ່ານການແກ້ໄຂຊັ້ນນໍາ. Beijer Electronics ເປັນບໍລິສັດກຸ່ມບໍລິສັດ Beijer. ກຸ່ມບໍລິສັດ Beijer ມີການຂາຍຫຼາຍກວ່າ 1.6 ຕື້ SEK ໃນປີ 2019 ແລະຢູ່ໃນບັນຊີລາຍຊື່ NASDAQ OMX Nordic Stockholm Small Cap ພາຍໃຕ້ ticker BELE. www.beijergroup.com
ຕິດຕໍ່ພວກເຮົາ
ຫ້ອງການແລະຜູ້ຈັດຈໍາຫນ່າຍທົ່ວໂລກ
ເອກະສານ / ຊັບພະຍາກອນ
![]() | MQTT Client JSON - iX Developer Script Module |
ເອກະສານອ້າງອີງ
- ດາວໂຫຼດ | Eclipse Mosquittomosquitto.org
- ນະວັດຕະກໍາໃນເຕັກໂນໂລຊີດິຈິຕອນອຸດສາຫະກໍາ | Ependionwww.beijergroup.com
- ຄູ່ມືຜູ້ໃຊ້manual.tools
