KOMMA IGÅNG GUIDE MODBUS Med WAGOs styrsystem
DENNA GUIDE Denna guide beskriver Modbus tekniken och hur du kommer igång med modbus kommunikation ifrån WAGOs styrsystem. Först visas stegen i e!cockpit och sen CoDeSys2.3. Denna guide är bara en kort komma igång guide. För djupare info se manualer, datablad och application notes från vår hemsida. Du bör ha baskunskaper om våra mjukvaror när du följer denna guide.
MODBUS En enorm mängd produkter stöder modbus. Modbus kallas ibland för automationsvärldens minsta gemensamma nämnare. Kanske är det för att modbus är relativt enkelt att förstå och billigt att implementera som så många branscher och produkter har skaffat stöd för modbus. Vi hittar Modbus i tillverkande industri, Processindustri, Fastigheter Marina sektorn Och på produkter som Operatörspaneler SCADAsystem PLC:er DUC:ar Frekvensomriktare Regulatorer
OLIKA SORTERS MODBUS. Modbus över Ethernet: Modbus TCP och Modbus UDP. Så kommunicerar vi oftast mellan styrsystem och från SCADA system eftersom ethernet klarar av mycket data. Modbus UDP är praktiskt taget lika säkert men belastar mindre. Det är dock inte lika standardiserat. Modbus seriellt: Modbus RTU och Modbus ASCII över RS232 eller RS485. Så kommunicerar med komponenter som inte har Ethernet eller ska installeras längre bort. RS485 fungerar med upp till 1200m kabel. Modbus ASCII har nästan helt försvunnit. 4 WAGO Kontakttechnik GmbH & Co. KG PRESENTATION TITLE DATED APRIL 2016
SÄKERHET. Modbus är relativt driftsäkert Modbus meddelanden innehåller en checksumma för kontroll att datan kommit fram korrekt. Modbus Mastern får svar från slaven att uppgiften utförts korrekt. Slaven övervakar om mastern slutar skicka orders Modbus slavar kan ofta utrustas med en modbus watchdog funktion. T.ex. Ett I/O låter alla utgångar gå ner till lägsta nivå och en decentraliserad PLC kan ta över en stand-alone drift vid kommunikationsbortfall.
MODBUS ÖVER ETHERNET Modbus över Ethernet stöder flexibel multimaster kommunikation T.ex operatörspanel och SCADA läser i PLC. PLCn styr distrierat I/O, annan PLC eller frekvensomriktare samtidigt. Om en central enhet slutar fungera kan annan kommunikation fungera ändå. Modbus TCP Modbus UDP Modbus TCP
MODBUS UDP Modbus TCP är den satta standarden för Modbus över Ethernet Alla möjliga fabrikat stöder modbus TCP. Det är alltså det naturliga valet från SCADA eller panel till styrsystem. MODBUS UDP erbjuder bättre realtidegenskaper och lägre busslast till i princip samma säkerhet. Modbus i sig själv kontrollerar att oförstörd data kommit fram. TCP har samma uppgift. Eventuellt ett onödigt dubbeljobb. TCP kräver att en uppkoppling hanteras. När det blir problem med en TCP anslutning tar det ca 1 sekund att återansluta systemet. UDP har bättre realtidegenskaper. Med modbus UDP är det enklare att hantera kommunikation med många enheter. Modbus UDP öppnar upp för möjligheter med multicast lösningar. Hanteringen för programmeraren är i stort sett densamma oavsett TCP eller UDP.
MODBUS FRÅGA Mastern skickar ut en begäran. Men vad innehåller den? 1. Modbus-slavens adress? Alltså IP-adressen/ UNIT-ID till enheten vi vill läsa eller skriva till 2. Vad vill vi att modbus-slaven ska göra? Alltså vill vi läsa eller skriva? Hur mycket vill vi läsa eller skriva? Detta är definierat i en modbus funktionskod. T.ex. Funktionskod 3: Läs register (16bitars) 3. Vad vill vi läsa/skriva i slaven. Function Code Description 1 Read Coil Status 2 Read Input Status 3 Read Holding Registers 4 Read Multiple Register 5 Force Single Coil 6 Write Single Register 7 Read Exception Status 15 Write Multiple Coils 16 Write Multiple Register 23 read and write multiple register Alltså på vilken modbus adress ligger information vi är ute efter. Det finns ingen officiell standard för var data ska finnas. Det måste läsas ut i modbus slavens manual.
WAGO OCH MODBUS WAGO har distribuerade I/O för För Modbus seriellt och Modbus över Ethernet. WAGOs moderna styrsystem kan köra Modbus både som slav och Master över Ethernet. Har styrsystemet en seriell port kan den köra seriell Modbus också. Vissa styrsystem har inbyggd seriell port som 750-8202. annars får man lägga till ett kort 750-652
WAGO OCH MODBUS Distribuerat I/O Modbus Adresser för I/O i WAGO kopplare 750-352 Vi gör skillnad på adresserna för digitala och 16bit register modbus-funktioner Digitala ingångar. Modbus adress 0-255 Digitala utgångar: Modbus adress 512-767 Analoga ingångar: Modbus adress 0-255 Analoga utgångar: Modbus adress 512-767
WAGO OCH MODBUS WAGO Ethernet Controllers minnes adresser CoDeSys2.3 Om en PLC variabel har en PLC adress kan den nås över modbus. PLC adress %MW0-%MW4096 Modbus adress 12288-16384 I ett styrsystem väljer man vanligtvis att låta PLCn styra utgångarna istället för att modbus mastern styr utgångarna direkt. Modbus Mastern skriver istället till PLC:ns minne. *Automatisk modbus publicering för adresserad variabel gäller CoDeSys2.3. I mjukvaran e!cockpit tillämpas ett helt annat koncept där variabler publiceras på modbus med önskad adress.
MODBUS FRÅN OPC OCH SCADA SYSTEM Börja räkna från 0 eller 1 Vissa system börjar räkna modbus adresser från 1 medan vi och modbus i sig börjar från 0. I vissa system skulle alltså WAGOs första utgång hittas på adress 513 istället för 512. Kommando och Modbus adress i ett Många OPC, Scada system vill sätta ihop kommando och modbus adress till ett tal med ett antal 0or mellan. Vanligast är nog 6 siffrigt decimal-tal. De använder första siffran som ett modbus kommando. Detta är inte samma som modbus funktionskod. 0. Skriv Bool 1. Läs Bool 3. Skriv Register 4. Läs Register Och sista kommer adressen. T.ex första analoga utgången 300513
OLIKA DATAFORMAT Byteswap bitswap Modbus är rådata. Om datan repesenteras olika i master och slav system, vill man nog ändra om den. T.ex. Växla ordningen på bytes eller bitar i 16 bitars registret. Gällande byte order jobbar WAGOs processor enligt Intels standard. För hantering av data från Motorola processorer måste de två bytesen i varje 16 bitars register byta plats. Vi har Färdiga funktioner för Byteswap.
MODBUS FUNKTION E!COCKPIT
MODBUS MASTER E!COCKPIT Funktion: PLCn är master till t.ex. ett distribuerat I/O eller frekvensomriktare Lägg till en slav Uppkopplade WAGO 750 slavar kan scannas av på nätverket inklusive I/O moduler precis som WAGOs styrsystem. För andra slavar eller offline hantering välj produkt från product catalog. För produkt från annat fabrikat, välj generic_modbus_slave 15 WAGO Kontakttechnik GmbH & Co. KG PRESENTATION TITLE NAME MAY 2017
KOMMUNIKATION Hantering av kommunikation görs via färgkodade portar på varje enhet i nätverksstrukturen. ( Grå anslutning är Ethernet, Svart är Seriellt, Blå är CANbus, Lila är Profibus). Dra ett streck mellan 2 enheters portar. Sen väljer man protokollet (ex. Modbus UDP). Tryck på Configurator knappen. 16 WAGO Kontakttechnik GmbH & Co. KG KOM IGÅNG GUIDE E!COCKPIT CARSTEN HOLM MAJ 2018
KOMMUNIKATION Konfiguration av Modbus variabler I Modbus menyn väljer man I/O variabler till höger. Högerklicka på variabel eller en markerad grupp av variabler, välj publish för att publicera dessa på modbus. Dessa variabler placeras sen till vänster vilket indikerar att de är publicerade. De finns nu tillgängliga i Master PLC programmet. För kommunikation med andra fabrikat skapa Modbus Generic taggar och sätt manuellt upp Modbus adress, funktionskod osv. TIPS! Variabler måste också användas i PLC programmet för att uppdateras. 17 WAGO Kontakttechnik GmbH & Co. KG KOM IGÅNG GUIDE E!COCKPIT CARSTEN HOLM MAJ 2018
MODBUS SLAV E!COCKPIT Funktion: PLCn är slav till t.ex. ett SCADA system (WAGOs PLC system kan samtidigt vara Master och Slav) 18 WAGO Kontakttechnik GmbH & Co. KG PRESENTATION TITLE NAME MAY 2017
LÄGG TILL EN MASTER För att aktivera slavfunktionen lägg in en Modbus Master t.ex. Generic_Modbus_Master i network and devices. 19 WAGO Kontakttechnik GmbH & Co. KG PRESENTATION TITLE NAME MAY 2017
PUBLICERA VARIABLER PÅ MODBUS Dubbelklicka på PLC för att nå detaljvyn. Flik MODBUS-Slave. Högerklicka på variabler till höger och publicera. Markera en publicerad variabel för att ställa in egenskaper som modbus adress. 20 WAGO Kontakttechnik GmbH & Co. KG PRESENTATION TITLE NAME MAY 2017
Configurator MODBUS MASTER FUNKTION CoDeSys2.3
MODBUS MASTER FUNKTION CoDeSys2.3 För att enkelt komma igång med MODBUS MASTER funktion finns enkla menyer som genererar koden åt programmeraren. För kommunikation med andra WAGO produkter är hantering snabb och enkel. Modbus adresser räknas ut automatiskt.
ÖPPNA Starta modbus Master configuratorn via Resources / PLC Configuration / Modbus-Master / Network View
Process Koden kommer genereras automatiskt, men vi måste sätta upp hur ofta den ska köras. Högerklicka på på modbus master och välj edit.
VÄLJ ETHERNET ELLER SERIELLT Högerklicka på Modbus Master och välj Ethernet eller seriellt gränssnitt
LÄGG TILL SLAVAR Högerklicka på ditt interface för att lägga till modbus slavar. Automatisk detektering av WAGO 750 slavar: Find devices Manuell addering: Add Modbus slave
LÄGG TILL SLAVAR AUTOMATISKT Interface / Find devices Sätt upp ett spann för att söka efter slavar. T.ex. 192.168.1.1 till 192.168.1.255. Välj de intressanta och tryck Apply. Mjukvaran scannar automatiskt av modulerna på valda slavar.
LÄGG TILL SLAVAR MANUELLT Interface / Add Modbus Slave Välj rätt 750 produkt i listan
LÄGG TILL SLAVAR MANUELLT Välj rätt 750 produkt i listan eller Generic för andra fabrikat. Högerklicka sen på adderad produkt och välj Edit. Skriv in rätt IP adress.
LÄGG TILL SLAVAR MANUELLT Välj K-Bus / Add För att lägga till moduler på samma sätt som lokalt I/O
SKAPA I/O VARIABLER För att skapa I/O Variabler gå in under K-bus och sätt namn under respektive I/O kanal. Sätt läs/skriv rättigheter under Access.
LÄGG TILL PLC VARIABLER För att läsa/skriva till minnes-variabler gå in under PLC variables och välj Add. Sätt namn, datatyp, PLC adress och läs/skriv rättigheter. För att kopiera från Configurator för att klistra in i slavens variabellista:copy as IEC61131 Code Det går också att kopiera många rader från slavens variabellista och klistra in i Configuratorn.
LÄGG TILL SYSTEMREGISTER För diagnostik och andra service register Högerklicka på eneric variables och välj Wago Modbus Registers.
ANDRA MODBUS SLAVAR För andra fabrikat: Add modbus slave. Välj generic. Lägg till variabler under generic variables. Sätt namn, datatyp och Read/Write access. Högerklicka och välj Edit Address för att sätt funktionskod och modbus Adress Man kan också sätta upp multipla objekt med en rad genom Number of Items.
OPTIMERING Om vi inte får svar på 20ms räknas det som ett fel. Många slavar hinner inte med detta. Höj till kanske 1000, alltså 1 sek. Efter att vi fått svar från slaven. Hur snart ska vi läsa och skriva igen? Välj en siffra efter era behov. Räcker det med en fråga/sekund så sätt 1000. Standardinställningar är satta för extremt höga krav. Sänk nivåerna för att inte knäcka slaven, minska busslaster och processorlaster.
OPTIMERING Om ni skapar PLC-processen för modbus genom konfiguratorn så är inställningarna satta för högsta prio och med hög frekvens 5ms. Det är i grunden rätt tänk för kommunikation. Men får ni problem med för hög processorlast (seg webvisu, komm-problem pc-plc eller andra försenade processer) så testa att höja tiden till 10ms och kanske sänka prio till sämre än de vanliga bakgrundsprocesserna. (11- för 750-88X) Standardinställningar är satta för extremt höga krav. Sänk nivåerna för att inte knäcka slaven, minska busslaster och processorlaster.
ANVÄND VARIABLER I CODESYS Variablerna kan nu användas i CoDeSys. Skriv [namnet på din slav].[variabelnamn] Diagnostik kas läsas i [namnet på din slav].mbcfg_error
PROCESSHANTERING Om vi väl satt upp en process i task manager så kommer inte PLC_PRG längre köras automatisk. Sätt upp en process manuellt för din vanliga kod.
TIPS Ändringar i Modbus Configurator kan inte laddas ner med Online Change. Detta beror på att configuratorn använder pekare.
KONTAKTINFORMATION Support.se@wago.com 08-584 106 81