Näide: ModbusTCP klient - nuppudega kaugjuhtimine
Ülesande püstitus
Eesmärk on kontrolleriga, millega on ühendatud juhtpaneel, juhtida läbi eemal oleva ModbusTCP toega kaug-I/O mooduli valgustulpasid. Rakenduses on kuus kolmevärvilist valgustupa. Ülesanne eeldab, et eelnevalt on kokkulepitud, mitmendat valgustulpa kasutatakse. Näites on kasutusel valgustulp 2.
- Kui all hoida start nuppu, peab vajutuse ajal põlema valgustuba roheline tuli, lahtilaskmisel kustuma.
- Kui all hoida reset nuppu, peab vajutuse ajal põlema valgustuba kollane tuli, lahtilaskmisel kustuma.
- Kui all hoida stopp nuppu, peab vajutuse ajal põlema valgustuba punane tuli, lahtilaskmisel kustuma.
KUI KASUTADA SIEMENS S7-1200 ModbusTCP serverit: ModbusTCP serveri vaikimisi TCP port on 502, aga Siemensi ModbusTCP serveri iseärasuse tõttu on iga ühenduse jaoks vaja eraldi TCP porti ja CONNECTION_ID-d, seega kui kasutusel on Siemensi ModbusTCP server, siis portide vahemik 6 ühenduse jaoks võib olla näiteks 502..507 ja Connection-ID-d vastavalt 1..6. Teistel seadmetel on suure tõenäosusega lubatud mitu päringut ühe pordi kohta ja pole vaja selle pärast muretseda.
CONNECTION_ID ja IP_PORT peavad olema serveri ja kliendi pool ühtemoodi seadistatud.
Antud rakendus tohib kaug-I/O moodulis kirjutada ainut konkreetse valgustulbaga seotud väljunditesse. Tuleb eeldada, et teisi kasutavad samal ajal teised rakendused.
Modbus Coil | Väljundi funktsioon |
---|---|
1 | Valgustulp 1, roheline |
2 | Valgustulp 1, kollane |
3 | Valgustulp 1, punane |
4 | Valgustulp 2, roheline |
5 | Valgustulp 2, kollane |
6 | Valgustulp 2, punane |
7 | Valgustulp 3, roheline |
8 | Valgustulp 3, kollane |
9 | Valgustulp 3, punane |
17 | Valgustulp 4, roheline |
18 | Valgustulp 4, kollane |
19 | Valgustulp 4, punane |
20 | Valgustulp 5, roheline |
21 | Valgustulp 5, kollane |
22 | Valgustulp 5, punane |
23 | Valgustulp 6, roheline |
24 | Valgustulp 6, kollane |
25 | Valgustulp 6, punane |
Teostus
Võrguseaded
ModbusTCP kasutab kontrolleri olemasolevat ProfiNet liidest ethernet võrguga suhtlemiseks. See tähendab, et enne võrku ühendamist tuleks kontrollerile anda võrgus unikaalne IP aadress ning määrata subnet mask vastavalt kasutusel olevale võrgule, kui seda juba tehtud ei ole. Võõra võrgu kasutamisel tuleb kindlasti võrguadministraatori käest küsida staatilised IP aadressid, mida võib kasutada, et vältida aadressi konflikte.
Andmeplokk: MB_CLIENT_DB [DB1]
See andmeplokk luuakse MB_CLIENT instruktsiooni sisestamisel instruktsioonidenimekirjast
automaatselt ning hoiab endas ModbusTCP kliendi toimimiseks vajalikke muutujaid.
See asub jaotuses Projekt > PLC_Nimi > Program blocks > System blocks > Program Resources
Sümbolite nimekiri
Nimi | Andmetüüp | Aadress | Kommentaar | |
---|---|---|---|---|
start | BOOL | %I8.0 | Start nupp | |
stop | BOOL | %I8.1 | Stopp nupp | |
reset | BOOL | %I8.3 | Reset nupp | |
Valgustulp2 | Byte | %MB0 | Saadetav bait | |
valgustulp2_roheline | BOOL | %M0.0 | Valgustulba roheline tuli | |
valgustulp2_kollane | BOOL | %M0.1 | Valgustulba kollane tuli | |
valgustulp2_punane | BOOL | %M0.2 | Valgustulba punane tuli |
Programm: Main [OB1]
SCL |
---|
"MB_CLIENT_DB"(REQ := true,
|
LAD | |
---|---|
Network 1: ModbusTCP andmeside | |
Network 2: Rohelise tule lülitamine | |
Network 3: Kollase tule lülitamine | |
Network 4: Punase tule lülitamine | |
- MB_CLIENT on ModbusTCP kliendi funktsiooniplokk, mis andmesidega otseselt tegeleb. Selle saab juhtprogrammi lisada paremal asuvast Instructions menüüst: Instructions > Communication > Others > MODBUS_TCP > MB_CLIENT
- MB_CLIENT_DB on ModbusTCP kliendi instantsi andmeplokk, mida kasutatakse andmesideks vajalike parameetritehoidmiseks
- CONNECT_ID on identifikaator, mis peab andmevahetuse toimimiseks kliendi ja serveri poolel sama olema.
- IP_OCTET_1 .. IP_OCTET_4 on serveri IP aadress (osadena)
- IP_PORT on TCP port, kuhu klient pöörduma hakkab
- MB_MODE määrab päringu tüübi. 0 on näiteks ühiku kaupa lugemine ja 1 on ühiku kaupa kirjutamine. Täpsemalt infot leiab TIA abifailidest.
- MB_DATA_ADDR on aadress kust alates kirjutama (või lugema) hakatakse
- MB_DATA_LEN määrab pikkuse - mitu ühikut kirjutatakse või loetakse
- MB_DATA_PTR peab olema muutuja või andmeplokk, kust võetakse saatmisele minevad andmed