Jump to content
veyselsari23

MQTT GMT PLC

Recommended Posts

Merhabalar,

Mqtt protokolünü biraz inceledim. Kullanışlı gözüküyor.

396T'da bir subscribe/publish client oluşturup, Ethernet üzerinden PC deki Mosquito Broker aracılığı ile Pyton'da hazırladığım GUI'ye bir kaç veri aktarabilir miyim? Örneğin, motor ON/OFF, sensör değeri vb.

Teşekkürlerimle.

 

Link to post
Share on other sites

Kendi Broker yazılımınız ile PLC ye ulaşmanız mümkündür.

PLC tarafında, program yüklemeden önce, GMTSuite yazılımda  MQTT server adını kendinizin ki ile değiştirmelisiniz.

Link to post
Share on other sites

Hanifi Bey, GMTSuite'de MQTT server adını PC deki ile nasıl değiştirebilirim.

PLC'de subs./publ. tanımlama ve değişkeni pub. yapmak için hangi işlemleri yapmalıyım. Teşekkürlerimle.

Edited by VKU
Link to post
Share on other sites

Hanifi Bey, yardım menüsünde işlemin nasıl yapılacağını buldum. 396T ve PC arasında zaman kısıtı olmadan kullanım mümkün müdür? Teşekkürlerimle.

Link to post
Share on other sites

PC'de mosquitto broker çalışıyor. PLC IP 192.168.0.55, PLC adı PLC1 iken --varsayımsal topic adı ile--

cmd'de; mosquitto_sub -h 192.168.0.55 -p "1234" -t "START"  (ayrıca PLC1/START ile de denedim)

Error: Hedef makine etkin olarak reddetti­ğinden bağ­lantı kurulamadı. hatası döndü.

Anaconda Sypder'da;

from PyQt5 import QtCore, QtGui, QtWidgets

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc): # The callback for when the client connects to the broker

    print("Connected with result code {0}".format(str(rc))) # Print result of connection attempt

    client.subscribe("PLC1/START")

def on_message(client, userdata, msg):

    print("Message received-> " + msg.topic + " " + str(msg.payload)) # Print a received msg

    QtWidgets.QPlainTextEdit(Form).plainTextEdit_2.text=str(msg.payload)

    QtWidgets.QLabel(Form).label_2.setObjectName("str(msg.payload)")

client = mqtt.Client("c1")

client.on_connect = on_connect

client.on_message = on_message

client.connect('127.0.0.1')

client.loop_start()

 

çalışıyor.

 

cmd'den;

mosquitto_pub -t "PLC1/START" -m 1 veya -m 0 yapınca;

phytonda; 

Message received-> PLC1/START b'1'
Message received-> PLC1/START b'0'

bilgisi yazdırılıyor.

Bu durumda yerel PC de broker kullanıldığında; 396T PLC de örneğin START (bit, modbus addr 1) değişkeni için topic adının ne olduğu önem kazanıyor. Böylece PC'den ve phyton'dan bu isimle subscribe ve publish  yapabileyim.

Yardımlarınız için teşekkür ederim.

 

Edited by VKU
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...