Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: MODBUS Variable anlegen

  1. #1
    Registriert seit
    11.06.2018
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    wie kann ich in CoDeSys (genauer SoMachine 4.3) eine MODBUS Variable deklarieren?

    Ist:
    M241 Steuerung mit HMISTO705 über MODBUS RS232.

    Im HMI habe ich einen MODBUS-Slave Treiber nach Anleitung eingebunden => jetzt kann ich hier nur Merkerbits und Merkerworte definieren.
    In SoMachine habe ich auf Seriell 1 (RJ45) den Modbus-Manager angelegt, da ich beim Modbus IO-Scanner nur IOs anlegen kann.

    Die Schnittstelle steht auf beiden Seiten gleich auf:
    Baud: 19200
    Parität: gleich
    Stopp: 1
    Daten: 8

    Wenn ich Variablen deklarieren will, mache ich das ja im allgemeinen so:

    VAR

    VAR1:BOOL;
    VAR2:WORD;

    END_VAR

    Jetzt habe ich ja keine Zuweisung, dass diese beiden Variablen auf den MODBUS führen ... z.B.: %M0, %MW1
    Wie definiere ich das? Ich habe versucht, sowohl im POU als auch in der GVL:

    VAR

    VAR1 AT%M0:BOOL;
    VAR2 AT%MW1:WORD;

    END_VAR
    (Hab ich so im WWW gefunden)

    Global wird das ohne Meldung übersetzt, führt aber beim hochladen auf die M241 zu einem Systemabsturz. Im POU wird das nicht mal übersetzt.
    Ist meine Syntax überhaupt korrekt?

    Über Eure Hilfe wäre ich sehr erfreut

    Danke und bis bald!
    Steffen
    Zitieren Zitieren MODBUS Variable anlegen  

  2. #2
    Registriert seit
    14.11.2014
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo,

    also eigentlich musst Du in SoMachine nur das HMI mit in dein SoMachine Projekt aufnehmen (ins gleiche Projekt wie die M241). Dann an der SPS Applikation eine sogenannte Symbolkonfiguration hinzufügen. In der Symbolkonfiguration die Variablen der SPS auswählen, die Du gerne im HMI bearbeiten willst. Danach aus dem LogicBuilder heraus die HMI Anwendung öffnen. Jetzt öffnet sich der VijeoDesigner und die Variablen sollten dir automatisch zur Verfügung stehen. Dann musst keine Modbus E/A Treiber mehr definieren und auch mit den Modbus Adressen hast Du keinen Ärger mehr, weil SoMachine das alles automatisch mit dem VijeoDesigner ausmacht.

    Der von dir beschriebene Weg müsste auch funktionieren, ist aber umständlicher und unsicherer, weil Du dich komplett um die Konsistenz der Daten und die Adressen kümmern musst.

    Was heisst denn Du bekommst einen Absturz beim Laden der SPS? Was stürzt ab, was funktioniert nicht?

    Eigentlich sieht die Syntax, die Du beschreibst nicht so schlecht aus.

    Grüße
    Jörg

  3. #3
    Registriert seit
    14.11.2014
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi,

    eins fällt mir gerade doch noch auf.

    Bei Var1 stimmt die Adresse nicht. Es muss heissen:

    Var1 AT %MX0.0 : BOOL

    Generell braucht es noch Leerzeichen zwischen "AT" und der Adresse.

    Var2 AT %MW1 : WORD;

  4. #4
    Registriert seit
    11.06.2018
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jörg, erst mal Danke für Deine Antwort.

    Ich setze wie beschrieben ein HMISTO705 ein. Dieses ist nicht über SoMachine programmierbar. Ich will geziehlt für einen Testaufbau die MODBUS—Verbindung haben. Leider kann ich machen was ich will, ich bekomm keinen Datenaustausch. Ich hab das Kabel nach Anleitung gemacht, hab sowohl Master als auch Slave-Treiber benutzt, hab die Adressbereiche kontrolliert (Danke für den Hinweis — hab mich bei der Bitadresse vertippt). Ich hab jetzt sogar ein weiteres HMI mit MODBUS-TCP zusätzlich angeschlossen und auch hier die ganzen Tests versucht. O.E. . Ich hab irgendein einfaches, grundsätzliches Problem. Auf der TCP-Schnittstelle hab ich den Ethernet-Manager, auf der Seriellen 1 (RJ45) den MODBUS-Manager aktiviert, da ich am HMI nur M-Adressen anlegen kann. Ein IO-Scanner bringt mir da ja nichts. Ich komm einfach nicht weiter.

    Hast Du noch eine Idee?

    Nochmal Danke!

    Steffen

  5. #5
    Registriert seit
    14.11.2014
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi,

    also die M241 sollte grundsätzlich erstmal Modbus Slave (seriell) bzw. Modbus Server (TCP) sein.

    Bei Modbus TCP muss nur der Modbus Server aktiviert sein und die IP Adresse konfiguriert sein:

    TCP Server aktiv.png
    IP Adresse konfigurieren nicht vergessen (schlechter Screenshot)


    Bei Modbus Seriell, sollte der Modbus Manager da sein und als Slave konfiguriert sein:

    Modbus Manager.png

    Im HMI brauchst Du dann einen Modbus TCP Client oder Modbus Seriell Master Treiber.

    HMI Treiber.jpg

    Richtige IP Adresse oder Modbus Seriall Adresse der SPS einstellen und eine passende z.B. UINT Variable auf %MW1 anlegen
    Viel mehr sollte es nicht sein.

    Ich kann es leider gerade nicht ausprobieren, weil ich im Hotel keine SPS und HMI griffbereit habe

    Grüsse

  6. #6
    Registriert seit
    11.06.2018
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jörg,

    hier ein kurzer Zwischenbericht:
    Die TCP-Verbindung läuft fast. Leider habe ich noch ein Problem:

    Die Wortadressen %MW0/1/2 funktionieren jetzt. Die Bitadresse %MX0.0 geht in SoMa gar nicht, erst die %MX0.1 => das ist aber ok. Problem ist, dass ich im HMI kein %MX0.1 adressieren kann. Ich kann nur %Mx angeben x=0..n. Oder %MWx:Xyy (z.B. MW0:X00).
    Egal wie ich das einstlle, verschiebe, mit IEC und ohne - das bit geht nicht. In SoMa kann ich wiederum nur M0.1 als Bool anlegen. Ein MW0:X00 :Bool geht nicht. ISt da wieder meine Syntax falsch? Oder muss ich das anders deklarieren als mit :X ... ich tu mich mit der Hilfe und dem Handbuch schwer, werde aber parallel suchen und ggf. hier den neuen Stand eintragen.

    Die Serielle Verbindung will einfach nicht tun. Da geht garnix. Ich versuch es weiter.
    Danke für Deine Unterstützung - toll, dass es Leute wie Dich gibt!

    Gruß,
    Steffen

  7. #7
    Registriert seit
    11.06.2018
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    Zur Info: Meine Pinbelegung ist (M241 / STO705)

    1 - 9
    2 - 8
    8 - 5

    und am STO705 hab ich noch 3 auf 4 gebrückt. Sollte doch stimmen, oder?

    Gruß,
    Steffen
    (der immer weiter vorwärts kommt - Dank Hilfe)
    Geändert von s.wiederhoeft@arcor.de (13.06.2018 um 11:44 Uhr)

  8. #8
    Registriert seit
    11.06.2018
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    neuer Stand:
    TCP = IO
    Die Bitadressen müssen über die Worte ausgetauscht werden => %MW3:X9
    ACHTUNG:
    Hier fällt es jetzt sofort auf => diese Adresse ist in der M241 die Adresse %MX7.1 !!!! Es muss die Bytedrehung beachtet werden und außerdem, dass bei dieser Adressierung in der SPS nicht 16Bit sondern 8Bit - also ein Byte pro Adressse verrechnet wird (Normal ist ja ein Wort) !!!
    Ein Adressieren mit den direkten Merkerbitadressen ist uns nicht gelungen. Entweder SoMa ist abgestürzt oder die Adresse wurde nicht angezeigt.

    Gruß,
    Steffen
    Geändert von s.wiederhoeft@arcor.de (13.06.2018 um 16:04 Uhr)

  9. #9
    Registriert seit
    14.11.2014
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi,

    also es ist generell zu beachten, dass in der M241 die %MW Adressen den gleichen Speicherbereich nutzen wie die %MX Adressen.

    Also %MW0 ist der gleicher Speicherbereich wie %MX0.0 bis %MX1.7. (Die Bits werden nochmal in Byte aufgeteilt %MX0.0...%MX0.7 und %MX1.0...%MX1.7)
    siehe folgendes Bild:

    Speicher M241.png

    Wenn Du im HMI nur %M adressieren kannst, musst entsprechend umrechnen........ Also, wahrscheinlich entspricht %M0 im HMI der Adressen %MX0.0 in der SPS. Es sei denn die Byte sind auch noch verdreht (MSB/LSB)

    Wegen dem seriellen Kabel muss ich nochmal gucken, ob ich eine Belegung finde. Wie gesagt, bin im Hotel und habe nicht alles dabei

  10. #10
    Registriert seit
    14.11.2014
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Pinbelegung von Dir oben beschrieben passt, wenn, dann nur auf RS232. Die Standardeinstellung in der M241 ist aber RS485. Also Vorsicht hier.

    Hier die Pinbelegung am RJ45 Seriell Port der M241 (SL1, die RJ45 Buchse oben auf der M241 neben den digitalen Eingängen)

    RS485.png

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 23.11.2016, 21:22
  2. Antworten: 1
    Letzter Beitrag: 03.11.2016, 16:28
  3. Temporäre Variable anlegen
    Von MrChiliCheese im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.07.2012, 17:35
  4. Antworten: 1
    Letzter Beitrag: 10.09.2008, 15:30
  5. WinCC anlegen einer globalen Variable in C?
    Von BorisDieKlinge80 im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 11.06.2008, 12:29

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •