You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Modbus TM-FLOW

Modbus CODESYS

For å kunne bruke roboten måtte man ha en eldre versjon av TM FLOW, altså system versjon 1.88.2400. Etter ruter oppsettet som det står skrevet om under, måtte Modbus settes fra TM-flow programmet. Det tok tid å forstå hvordan det skulle gjennomføres, siden CODESYS interface og navngiving var veldig annerledes fra TM sitt.

Fra TM-FLOW var enklere og mer intuitivt. Kommunikasjonen som ble satt opp var:

  • Register output
  • Digital input
  • Register input

Når en skal koble til en ny enhet må den opprettes iModbus devices. Her må IP-adressen legges inn og hvilken port den kommuniserer på.


Timeout er bare for hvor lenge den skal kjøre uten signal.

Register output

I enheten må en legge til signals. Her passer en på at den blir tildelt riktig adresse og at den blir satt til å sende riktig type i forhold til det en skal lese av på mottaker siden.


Digital input

Disse signalene ble satt til BOOL  og hadde på lik måte som register output samme adresse som senderen.


Register input

Register input fikk inn koordinatene i int16 som ble satt til posisjonsvariabler. Disse ble oppdatert for hver gang runCommand ble sendt til TM-5 roboten.


Etter mange timer med prøving og feiling ble det endelig forstått hvordan oppsettet på Modbus dataen skulle legges inn.

I CODESYS blir det lagt inn

  • Holding registers for å lese data (WORD) fra OMRON PLS-en inn til WAGO-en
  • Coils for å sende BOOL Coil/booleans
  • Input registers for å sende WORD

For å sette innstillinger for variablene måtte det settes opp slik. Antallet avhenger av hvor mange variabler man vil sende over MODBUS:

Holding registers

For å lese inn holding registers data måtte variablene deklareres slik som i den øverste figuren ,og bli koblet til en variabel i et kjørende program (kan ikke bare mappes direkte til en global variabel).

For variabler som skal sendes til OMRON kan de bare mappes til variabelen.


Input register

Input registers blir brukt til å sende variabler i WORD format fra Wago PLC. Disse er relativt simple å sette opp og krever bare at man mapper variablene til det registeret det skal sendes på. Ettersom en setter det til WORD (16 bit)  må en passe på at variablene blir konvertert riktig når det skal sendes. I vårt tilfelle ble INT_TO_WORD brukt, siden robotkoordinatene var i mm, og vi ikke trengte høyere oppløsning en hele tall.

Coil/booleans

Coil/booleans

For å sende BOOL må en variabel deklareres til typen byte og bli koblet til en coil som vist under.


Deretter må en aktivere enkelte bits i byte variabelen. Det går ikke an å koble en enkelt bit til en BOOL uten å mappe til en byte.


Selve programstrukturen må se slik ut, med Ethernet porten og ei Slave lagt til i devices:

Ruter Setup

Ressurser

En egen ruter skulle kobles opp for å opprette et LAN som Wago PLS-en og roboten kunne kobles til. Da blir det også mulig å koble seg til systemet med PC-en trådløst, på det lukkede nettverket.

På dette nettverket skulle både Modbus RTU kommunikasjonen og MQTT protokollene kjøre. Utstyret som kom fra lageret på NTNU var ikke alltid like stabilt. Tre rutere ble testet før det fungerte til å sette opp nettverket.

Ettersom PLS-ene hadde en fastsatt IP-adresse, ble det bestemt at den skulle beholde samme adresse, for ikke å ødelegge dens innstillinger. Siden det ikke var en standard IP på 158.38.140.87, måtte oppsettet på ruteren endres. Gateway adressen ble endret til 158.38.140.1 for å gjøre det enkelt for Wago PLS-en å koble seg på.

Det fungerte fint på et lokalt nettverk fram til ruteren koblet ut, som skjedde med en av de første ruterne som ble prøvd. Hver gang ruteren ble resatt for å få tilbake kommunikasjonen ble den også satt til standard IP på 192.168.0.1.

For at enhetene ikke skulle miste kontakten, måtte de også bli tildelt statiske IP-adresser. I OMRON ble den nye Gateway adressen lagt inn slik at det skulle vite hvilket nettverk den skulle forvente en IP-adresse fra. Ettersom OMRON PLS og TM-5 roboten er separate systemer, hadde roboten også en helt annen IP-adresse. Dette ble heldigvis ikke noe problem for OMRON PLS-en.

Nettverksoppsettet til TM-FLOW ser slik ut:

Her går en inn på MODBUS innstillinger og trykker TCP på Enable i Modbus slave.  IP-adressen må være innenfor den satte rangen til ruteren.

  • No labels