XLogic.se

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.