TwidoSuite kommunikasjon TwidoSuite kursunderlag: Kommunikasjon via Modbus seriell, Ethernet, Remote link, ASCII, CanOpen og AS-i. Macroer for kommunikasjon
Modbus 2
Modbus port Bruk programmeringsporten eller drag & drop en modbus modul eller et modbus serie adapter Dobbelklikk på modbus porten Velg protokoll og adresse fra listen. Godkjenn 3
Lag Modbus nettverk Drag & drop et generic modbus element (eller en annen slave) Dobbelklikk på elementet for å konfigurere (navn & adresse) Trekk forbindelsen fra rundingen under modbus elementet og koble til modbus porten på Twido. Dobbelklikk på den svarte boblen for å konfigurere nettverket 4
Lag Modbus nettverk 5
Twido som Modbus Slave For å komme til konfigurering av nettverkparametere (baudrate,.) må man konfigurere en Master og trekke en kabel mellom Master og slave. Nettverksparameterene må være identiske med Master Det kreves ingen programmering. Master leser og skriver til Twido (%MW & %M) og dataene kan brukes i Twido programmet 6
Twido som Modbus Master Bruk EXCHx (x=1 -> programmeringsport, x=2 -> ekstra port) %MSGx Funksjonsblokker brukes for å sjekke nettverket Hvis det oppdages feil (f.eks. slaven svarer ikke) settes %MSGx.E & %MSGx.D til 1 og mer detaljer kan finnes i %SW63 (programmeringsport) & %SW64 (ekstra port) Kobling: på programmeringsporten må pinnene 5 og 7 kobles sammen for at porten skal skifte fra programmeringsprotokoll til valgt protokoll Et alternativ til bruk av EXCHx funksjonen er Macroer som beskrives lenger bak i presentasjonen. 7
Programeksempel i Ladder 8
Programeksempel i IL Les 4 ord fra %MW0 (slave memory mapping): LD 1 [%MW0 := 16#0106 ] (*reserved*) [%MW1 := 16#0300 ] (*reserved*) [%MW2 := 16#0203 ] (*Slave address: 2 ; function code 3: read N words*) [%MW3 := 16#0000 ] (*Address of the first word to read: %MW0*) [%MW4 := 16#0004 ] (*Number of words to read: 4*) LD 1 AND %MSG1.D (*Check communication availability*) [EXCH1 %MW0:11] (*Communication*) LD %MSG1.E (*check if there are errors*) ST %Q0.0 (*Turn on if there is an error*) END Leste data legges inn i %MW7~%MW10 9
Modbus TCP/IP (Ethernet) 10
Alt.1: Twidoport Gateway 499TWD01100 Twido kan bare være slave Konfigurer Twidoport i describe screen (IP adresse, ) Twidoport kan bare bruke adresse 1. Twido kommunikasjonsport må være slave nr. 1. 11
Alt. 2: Ethernet i CPU (TWDLCDE40DRF & TWDLCAE40DRF) Konfigurer porten Hver IP adresse er assosiert med en index. Bruk EXCH3 funksjonen Identisk med modbus seriell programmering Bruk index i stedet for modbus adresse 12
Remote link 13
Remote link 1 master (adresse 0), inntil 7 slaver (adresse 1 til 7) Bare på RS485 porter 2 kommunikasjonsmodus: Remote IO : ingen programmering i slavene Bare lokal I/O kan adresseres vha. %In.0.x & %Qn.0.x n=slave nummer og x = kanal nummer Peer controller (eller utvidelse) Slave kan ha sitt eget program Maksimum 4 inngangsord %INW og 4 utgangsord %QNW fra og til hver slave 14
Peer controller 15
Master konfigurering 1 Port setting Legg til slaver (velg Remote IO eller Extension fra katalogen) & konfigurer adressene Tegn og konfigurer nettverket 16
Master konfigurering 2 Tegn og konfigurer nettverket 17
Slave konfigurering Port setting 18
ASCII 19
Konfigurer ASCII 1 Drag & drop et ASCII element, for eks. en skriver. Dobbelklikk for å velge navn Dobbelklikk på Twido porten for å konfigurere (Protocol Type = ASCII) 20
Konfigurer ASCII 2 Tegn nettverket og dobbelklikk på label for å konfigurere Klikk på advanced for mer detaljer 21
Programeksempel i Ladder Mottakstabellen starter på %MW4. Kommandoer: 0= send, 1= send/motta, 2= motta %MW0 LSB blir oppdatert med antall ord som er mottatt. 22
Programeksempel i IL LD 1 (*Control table*) [%MW0 := 16#0104 ] (*MSB:kommando, LSB : antall byte som sendes*) [%MW1 := 16#0000 ] (*reservert*) (*transmission table*) [%MW2 := 16#0D0B ] (*MSB: byte 1, LSB: Byte 2*) [%MW3 := 16#4A4B ] (*MSB: byte 3, LSB: Byte 4 *) LD 1 AND %MSG1.D (*Kommunikasjon klar?*) [EXCH1 %MW0:8] (*Send*) LD %MSG1.E (*Test for feil*) ST %Q0.0 (*Feilmelding*) END Mottakstabellen starter på %MW4. Kommandoer: 0= send, 1= send/motta, 2= motta %MW0 LSB blir oppdatert med antall ord som er mottatt. 23
CanOpen 24
Konfigurer CanOpen Drag & drop TWDNCO1M CanOpen master modul Høyreklikk på CanOpen element for å evt. importere EDS fil Drag & drop slavene 25
Konfigurer CanOpen Høyreklikk på slavene og velg Configuration for å konfigurere Tegn nettverket, dobbelklikk på nettverket for å konfigurere 26
Konfigurer CanOpen Høyreklikk på slavene og velg CanOpen Configuration for å velge PDO Dobbelklikk på porten for å koble/linke PDO til master 27
Variabler & symboler Bruk adresser %IWC1.x.y & %QWC1.x.y i programet Man kan definere symboler i hardware konfigurering ved å klikke på CanOpen modulen NB! Master modul adresse (mellom 1 & 7) 28
SDO & explicit exchange Informasjon om kommunikasjonen lagres i %SW8n: %SW8n:X3 = 1 hvis det er en aktiv explicit exchange %SW8n:X1 = 1 ved kommunikasjonsfeil n= master port adresse (modul adresse) Explicit exchange kan gjøres vha CAN_CMD funksjonen: CAN_MODn %MWx:l n= master port adresse x= første ord i komunikasjonstabellen l= lengde på komunikasjonstabellen 29
30
Programeksempel i IL For å skrive: SDO_Slave:1_index:24576_sub-index:1_lengde:4 LD 1 [%MW0 := 16#0004] [%MW1 := 16#0001] (* SDO write to address node 1*) [%MW2 := 16#6000] (*Access to index number 24576*) [%MW3 := 16#0104] (* Access to sub-index number 1 * ) (* and length value 4 *) [%MW4 := 16#1234] (* Data 1 value*) [%MW5 := 16#1234] (* Data 2 value*) ---- LD %SW81:X3 (* If there is no CAN_CMD instruction *) (* in progress, then continue *) [CAN_CMD1 %MW0:6] (* Start SDO command*) 31
ASI 32
Konfigurering Drag & Drop ASI Master modul TWD NOI 10M3 Dobbelklikk på master for å konfigurere nettverket 33
Konfigurering Legg til slaver (manuelt eller fra katalogen) 34
Programmering Programmering gjøres ved bruk av adresser og/eller symboler laget i forrige trinn 35
Kommunikasjon MACRO 36
Hva er en macro? Det finnes to type macroer: Comm macroer Drive macroer Comm macroer for modbus & modbus TCP/IP nettverk for å forenkle programmering av les/skriv funksjoner Drive macroer for CanOpen mot Basic_ATV elementer. For enkel kontroll av drive vha explicit exchange 37
Hvordan brukes en macro? I Program Configure - Configure the data, velg Advanced objects. Velg Macros Comm eller Macros Drive Kryss av i Conf kolonnen for macroer som skal brukes Velg nettverk og adresse til slaven det skal kommuniseres med Velg funksjonene som skal brukes ved å krysse av for symboler og velg adresser (pass på at adressene ikke overlapper) Klikk Apply for å godkjenne Symboler & adresser kan sjekkes i define symbols vinduet Velg Help with Drive (Comm) macros for mer informasjon om funksjonene i macroene 38
Konfigurer Macro 39
Bruk Macro i programmet Skriv inn data i macro parameterene Bruk macro kommandoen Hvis nødvendig leses data fra macro parameterene. 40
Eksempel : les 4 ord fra en slave fra %MW3 med instance 2 av comm macro C_RDNW 41
Eksempel : les 4 ord fra en slave fra %MW3 med instance 2 av comm macro C_RDNW 42
Vis koden som ligger bak en macro I ladder editor, høyreklikk på macro blokk & velg see equivalent code 43