ایک PLC سیلز مین سے MQTT کے بارے میں پوچھیں اور آپ کو ایک روڈ میپ ملتا ہے: "اگلے سال، شاید، پریمیم ماڈل پر۔" پھر آپ چھوٹے حروف پر نظر ڈالتے ہیں اور ایک گیٹ وے، ایک کنورٹر، یا ایک کلاؤڈ سبسکرپشن کو اس خصوصیت کے پیچھے چھپے ہوئے پاتے ہیں۔ xLogic ایتھرنیٹ سی پی یوز پر MQTT کی حمایت میں ان میں سے کچھ بھی نہیں ہے — یہ 1.04 ترمیم سے فرم ویئر میں موجود ہے، اور یہ کنٹرولر سے براہ راست شائع کرتا ہے۔
یہ ایک بجٹ مشین کی صلاحیتوں کو تبدیل کرتا ہے، اور زیادہ تر انٹیگریٹرز نے اس کا نوٹس نہیں لیا ہے۔
ایک کے لیے MQTT کیوںMicro PLC
MQTT بالکل اسی صورتحال کے لیے بنایا گیا ہے: ایک غیر قابل اعتبار نیٹ ورک پر ایک ڈیوائس، بروکر کو چھوٹے پیغامات شائع کرنا، ایسے سبسکرائبرز کے ساتھ جو آتے اور جاتے ہیں۔ ایک فیکٹری میں ایک مشین، ایک کھیت میں ایک پمپ اسٹیشن، دفتر سے دو گھنٹے دور ایک گرین ہاؤس — ہر ایک اپنی حیثیت شائع کرتا ہے؛ کلاؤڈ ڈیش بورڈ، فون ایپ اور انجینئر کا لیپ ٹاپ سب ایک ہی موضوع پر سبسکرائب کرتے ہیں۔ کوئی پولنگ نہیں، پلانٹ میں کوئی کھلے پورٹس نہیں، کوئی SCADA سرور کنکشن کی دیکھ بھال نہیں کر رہا۔
بروکر افراتفری کو سنبھالتا ہے۔ PLC صرف شائع کرتا ہے۔
آپ واقعی کیا ترتیب دیتے ہیں
کنکشن بلاکس پروگرام میں رہتے ہیں: بروکر کا پتہ، موضوع، شائع کرنے کا وقفہ مرتب کریں، اور یہ نقشہ بنائیں کہ کون سی قیمتیں پیلوڈ میں جائیں گی۔ سی پی یو کنکشن کی زندگی کے چکر کو سنبھالتا ہے — ایک ڈراپ کے بعد دوبارہ جڑیں، ایک گیپ کے بعد دوبارہ شائع کریں — جو ہاتھ سے تیار کردہ عمل درآمد کو ختم کر دیتا ہے۔
اسے ویب سرور اور الارم SMS کے ساتھ جوڑیں اور آپ کے پاس ایک کنٹرولر پر تین آزاد دور دراز چینلز ہیں۔ دفتر کے لیے کلاؤڈ ڈیش بورڈ، آپریٹر کے لیے براؤزر کا صفحہ، ڈیوٹی انجینئر کے لیے SMS۔ اپنے سامعین کے مطابق اپنا چینل منتخب کریں۔
حقیقی کیس: دور دراز گرین ہاؤس کی نگرانی
ایک نرسری جس میں چار بے تھے نے سائٹ کے نیٹ ورک کی دوبارہ تعمیر کیے بغیر کلاؤڈ کی مرئیت چاہی۔ ہر بے کا کنٹرولر درجہ حرارت، نمی اور والو کی حیثیت کو کرائے پر لی گئی VPS پر ایک بروکر کو شائع کرتا ہے؛ ایک سادہ ڈیش بورڈ نے سبسکرائب کیا اور ایک اسکرین پر چاروں بے دکھائے۔ جب دوپہر کے وقت انٹرنیٹ بند ہوا تو کنٹرولرز نے مقامی قطار میں شائع کرنا جاری رکھا اور دوبارہ جڑنے پر قیمتیں پکڑ لیں۔
کاشتکار کا خلاصہ، جو جوش و خروش سے ترجمہ کیا گیا: "میں نے اپنی چھٹی کے دوران اپنے فون سے درجہ حرارت کے گراف کو دیکھا۔ یہ وہاں ہونے سے بہتر تھا۔"
کہاں MQTT غلط جواب ہے
حدود کے بارے میں ایماندار رہیں۔ MQTT واقعہ اور ٹیلی میٹری پر مبنی ہے — یہ ایک متعین کنٹرول لوپ نہیں ہے۔ اگر آپ کو ضمانت شدہ ترسیل اور ملی سیکنڈ کا جواب درکار ہے تو مقامی طور پر Modbus TCP استعمال کریں۔ MQTT نگرانی اور رپورٹنگ کے لیے ہے، حفاظتی انٹر لاکنگ کے لیے نہیں۔ اسے اس طرح ڈیزائن کریں اور یہ آپ کو سالوں تک خدمت دے گا۔
اور بروکر کی اسناد کو درست رکھیں۔ ایک PLC جو عوامی موضوع پر شائع کرتا ہے وہ ایک PLC ہے جو اپنے کاروبار کو نشر کر رہا ہے۔ نجی موضوعات، ایک مقامی بروکر، یا کم از کم بروکر پر TLS — سیٹ اپ کی قیمت منٹوں میں ہے، اور شرمندگی سے بچنا حقیقی ہے۔
چوری کرنے کے قابل پیٹرن
موضوع ڈیزائن جو بڑھتا ہے
MQTT صرف آپ کے موضوع کی ساخت کے طور پر صاف ہے، اور موضوع کی ساخت وہ جگہ ہے جہاں چھوٹے پروجیکٹس خاموشی سے ناقابل انتظام بن جاتے ہیں۔ سادہ نقطہ نظر — ہر ڈیوائس کے لیے ایک موضوع، ایک پیلوڈ جس میں سب کچھ ہو — ایک مشین کے لیے کام کرتا ہے اور دس پر گر جاتا ہے۔ ہر سبسکرائبر ہر پیلوڈ کو دوبارہ پارس کرتا ہے، پیلوڈ میں ہر تبدیلی ہر ڈیش بورڈ کو توڑ دیتی ہے، اور ڈیبگنگ ایک موضوع بہ موضوع شکار بن جاتی ہے۔
پہلا شائع کرنے سے پہلے درجہ بندی کا ڈیزائن کریں۔ ایک پیٹرن جو میرے لیے اچھی طرح کام کرتا ہے:سائٹ/ڈیوائس/زمرہ/قدر. توplant1/pump1/status/run, plant1/pump1/sensor/level, plant1/pump2/alarm/high-level. وائلڈ کارڈ سبسکرائبرز — plant1 کے لیے ایک ڈیش بورڈ، pump1 کے لیے ایک صفحہ، ہر چیز کے لیے ایک الارم سننے والا — ہر ایک بالکل اسی حصے کو سبسکرائب کرتا ہے جس کی انہیں ضرورت ہے۔ نئے آلات بغیر پرانے موضوعات کو چھوئے داخل ہوتے ہیں، اور پیلوڈز چھوٹے اور ٹائپڈ رہتے ہیں۔
پیلوڈز کو سادہ رکھیں: ایک قیمت اور ایک ٹائم اسٹیمپ۔ گیارہ فیلڈز رکھنے والے نیسٹڈ JSON بلاکس نہیں جب تک کہ آپ واقعی ان کی ضرورت نہ ہو۔ سادہ پیلوڈز ڈیبگ کرنے کے قابل ہیں — آپ بروکر کے کنسول میں ایک کو پڑھ سکتے ہیں اور فوراً جان سکتے ہیں کہ آیا یہ صحیح ہے۔ اور حیثیت کے موضوعات پر ریٹین فلیگ مرتب کریں تاکہ ایک نئے سبسکرائبر کو آخری معلوم حالت فوراً نظر آئے بجائے اس کے کہ اگلی اشاعت کا انتظار کرے۔ ریٹینڈ اسٹیٹ ایک ڈیش بورڈ کے درمیان فرق ہے جو کھلتا ہے اور تیار ہوتا ہے اور ایک جو منٹوں تک خالی گھومتا ہے۔
آخری قاعدہ وہ ہے جس کی لوگ مزاحمت کرتے ہیں: جب پیلوڈ کی شکل بدلتی ہے تو موضوع کی ورژننگ کریں۔plant1/pump1/status/v2. یہ بدصورت ہے۔ یہ آپ کو ایک تبدیلی کے ساتھ پیداوار میں پانچ سبسکرائبرز کو توڑنے سے بچاتا ہے۔ بدصورت موضوعات جو کام کرتے ہیں وہ صاف موضوعات سے بہتر ہیں جو پھٹتے ہیں۔
پبلش کرنے کے قابل ڈیٹا
سب کچھ شائع کرنا کچھ نہ شائع کرنے کے برابر ہے — یہ بروکر کو بھر دیتا ہے، لاگ کو پھولا دیتا ہے، اور ان قیمتوں کو دفن کرتا ہے جو اہم ہیں۔ اس سوال سے شروع کریں جو سبسکرائبر پوچھے گا، رجسٹرز کی فہرست سے نہیں۔ ایک آپریٹر حیثیت، الارمز اور چلنے والے کل چاہتا ہے۔ ایک انجینئر ٹرینڈز چاہتا ہے: درجہ حرارت، دباؤ، چلنے کے گھنٹے۔ ایک منیجر اپ ٹائم اور گنتی چاہتا ہے۔ انہیں شائع کریں، اور صرف انہیں۔
شرح بھی اہم ہیں۔ الارم کی تبدیلیاں: فوری طور پر شائع کریں، ہمیشہ۔ حیثیت: تبدیلی کے ساتھ ساتھ ایک ہارٹ بیٹ۔ اینالاگ قیمتیں: اس وقفے پر جو واقعی عمل کو ظاہر کرتا ہے — سست گرین ہاؤس کے درجہ حرارت کے لیے دس سیکنڈ، مشین ٹول کے لیے ایک سیکنڈ۔ ہر تیز موضوع جس کی آپ کو ضرورت نہیں ہے وہ ضائع شدہ بروکر لوڈ اور وائرلیس ماڈلز پر ضائع شدہ SIM ڈیٹا ہے۔
اور اہم لوگوں کو مقامی طور پر بھی لاگ کریں۔ سی پی یو کی ڈیٹا لاگنگ کے ساتھ ساتھ بروکر کے محفوظ کردہ پیغامات آپ کو اہم تاریخ کے دو کاپی فراہم کرتے ہیں۔ جب بروکر کا برا دن ہوتا ہے — وہ سب ہوتے ہیں — مشین کے سائیڈ کا لاگ سچائی کا ماخذ ہوتا ہے، اور بحالی کی گفتگو مختصر ہوتی ہے۔
سی پی یو پر مقامی کنٹرول، MQTT کے ذریعے کلاؤڈ کی مرئیت، اور دونوں کبھی مداخلت نہیں کرتے۔ یہ علیحدگی جدید چھوٹی خودکاریت کی تعمیر ہے، اور یہ DIN ریل پر فٹ بیٹھتا ہے۔ سیلز مین کا روڈ میپ نہیں آیا۔ فرم ویئر پہلے ہی بھیجا جا چکا ہے۔












