XLogic.se MODBUS-GUIDE Vi ska här försöka reda ut lite grunder angående modbus-kommunikation med/mellan våra produkter. Till att börja med så är modbus ett kommunikationsprotokoll. Detta protokoll kan sedan tillämpas på olika kommunikationssätt, som tex RS232 eller RS485 vilket är vanligast och används av våra produkter. GRUNDER Våra produkter kan kommunicera på standard modbus-nätverk med RTU överföring. ELC-12 standard & upgraderade ELC-18 kan även använda sig av ASCII överföring. ELC-12/18 kan kommunicera med alla slavenheter i ett modbus-nätverk, då dessa kan agera master. Alla våra CPUer kan agera slav i ett modbus-nätverk. Varje modbus-nätverk består vanligtvis av en master och en eller flera slavar. ELC-12 Vi börjar med att titta på ELC-12 standard CPU, denna har 3st kommunikationsportar. COM1 RS232: Är porten man ansluter programmeringskabeln till. Denna kan även användas för annan kommunikation som HMI-paneler, ELC-USB mm. COM2 RS485: Används för kommunikation med anslutna expansionsmoduler. Denna kan även användas till annan kommunikation om den inte används till expansionsmoduler. COM3 RS485: Detta är den primära kommunikationsporten för anslutning till andra enheter. ELC-RS485 & ELC-Ethernet ansluts till denna port. ELC-RS232 Pin2=RXD Pin3=TXD Pin5=GND Others=NULL 1=COM2 RS485 A1 (*SVART) 2=COM3 RS485 A2 (*GRÖN) 3=COM3 RS485 B2 (*BLÅ) 4=GND (*GUL) 5=BATTERY (*VIT) 6=COM2 RS485 B1 (*RÖD) * Färg i ELC-CB-B ELC-12 EKONOMI & ELC-6 ELC-12 Ekonomi & ELC-6 har endast COM1 och kan endast vara slav. Det går bra att koppla dessa direkt till annan RS232 port vid korta avstånd. ELC-12 <-> ELC-12 RS-485 Här går vi snabbt igenom hur man kör ihop 2 ELC-12 med varsin RS-485 modul. Skall du bara använda slaven/slavarna som rena expansionsmoduler så lägger du in alla in & utgångar i ett program, sen kan du ju skriva något kul i displayen också. Ladda sedan ner detta i slavenheterna. I mastern sätter du upp följande för att få tillgång till alla I/O Läs AI1-4 Läs I5-8 Skriv Q1-4 Detta block läser I5-I8 på slav 1 och lägger statusen i F1-F4 Detta block läser AI1-AI4 från Detta block tar statusen på F5-F8 slav1 och lägger värdet i AF1-AF4 och sätter samma status på Q1Q4 på slav1 Nu har du gjort grunden och kan börja bygga ditt program. Vill du sätta Q2 på slav1 så sätter du flagga F6 i ditt program, vill du läsa I7 på slav1 så läser du F3, osv. För att underlätta kan man döpa sina flaggor efter vad dom är kopplade till. Vill man göra mer komplexa saker så kan man skriva till flaggor i slavenheterna och även ha logik i dessa också, som te.x säkerhetsfunktioner om kommunikationen felar så skall det stanna, eller lokalkörning. Man kan även läsa från flaggor. Möjligheterna är många. Observera att slavenheterna behåller senaste status på utgångarna om kommunikationen bryts. Behöver man övervaka detta så måste man lägga logik i slavenheterna som stoppar om detta sker. Det finns ingen färdig funktion till detta. Enklast är att slå av/på en flagga i slavenheten från mastern och sedan sätta en tillslagsfördröjning på både hög & låg status på flaggan som i sin tur slår stopp. HMI <-> ELC-12 <-> ELC-12 MASTER SLAV/MASTER SLAV RS-485 RS-232 Gör man på detta vis så kan man utgå från föregående exempel men man kan påverka MASTERPLCn med HMI-panelen. Det enda man bör tänka på är att skilja på de 2 nätverken och hålla isär blocken mellan dem så man inte skriver & läser till samma block från båda nätverken. Man kan bygga upp sitt MODBUS nätverk på massa olika sätt, det hänger bara på programmering. Här är några exempel: MASTER SLAV1 MASTER SLAV2 SLAV2 SLAV1 SLAV2 SLAV2 ADRESSERING ELC-12 & EXM Här kommer en kortfattad lista på adresser till de olika programblocket i ELC-12 & EXM-serien. Dessa används när du skall kommunicera med dessa i ett MODBUS-nätverk från PLC, HMI eller annat. Observera att te.x vår HMI ELC-MD204 panel inte börjar på 0 utan 1, alltså hamnar te.x ingång 1 inte på 0 utan på 1. BLOCK KOD ADRESS TYP LÄS/SKRIV INGÅNG TYP 1x ELC-12 CPU ELC12-E-(EXT1) ELC12-E-(EXT2) ELC12-E-(EXT3) 0-7 8-11 16-19 24-27 BIT LÄS BLOCK KOD ADRESS TYP LÄS/SKRIV PILKNAPPAR TYP 1x C 256-259 BIT LÄS BLOCK KOD ADRESS TYP LÄS/SKRIV UTGÅNGAR TYP 0x ELC-12 CPU ELC12-E-(EXT1) ELC12-E-(EXT2) ELC12-E-(EXT3) 0-3 8-11 16-19 24-27 BIT LÄS/SKRIV BLOCK KOD ADRESS TYP LÄS/SKRIV MELLANBLOCK TYP 0x M 256-767 BIT LÄS Mellanblock nr1 har alltså adress 256, nr2 har 257 osv. BLOCK KOD ADRESS TYP LÄS/SKRIV FLAGGA TYP 0x F 1536-1599 BIT LÄS/SKRIV Flagga nr1 har alltså adress 1536, nr2 har 1537 osv. BLOCK KOD ADRESS TYP LÄS/SKRIV REGISTER TYP 4x REG 0-511 LONG LÄS/(*SKRIV) *Counterblocks kan skrivas till. BLOCK KOD ADRESS TYP LÄS/SKRIV ANALOGINGÅNG TYP 4x AI 1024-1279 SIGNED SHORT LÄS BLOCK KOD ADRESS TYP LÄS/SKRIV ANALOGUTGÅNG TYP 4x AQ 1280-1535 SIGNED SHORT LÄS/SKRIV BLOCK KOD ADRESS TYP LÄS/SKRIV ANALOGA MELLANBLOCK TYP 4x AM 1536-2074 SIGNED SHORT LÄS BLOCK KOD ADRESS TYP LÄS/SKRIV ANALOGA FLAGGA TYP 4x AF 3072-3135 SIGNED SHORT LÄS/SKRIV BLOCK KOD ADRESS TYP LÄS/SKRIV 2560-3071 WORD LÄS FREKVENSBUFFER REG TYP 4x Mer detaljerad information finns i vår Engelska MODBUS-manual.
© Copyright 2025