Fidelix I/O-moduulien käyttöohje 15.12.2003



Samankaltaiset tiedostot
KÄYTTÖOHJE PEL 2500 / PEL 2500-M

KÄYTTÖOHJE PEL / PEL-M

Nokeval No Käyttöohje. Tekstinäyttö 580-ALF

KÄYTTÖOHJE PEL 1000 / PEL 1000-M

PM10OUT2A-kortti. Ohje

1. Yleistä. 2. Ominaisuudet. 3. Liitännät

GSM OHJAIN FF KÄYTTÖOHJE PLC MAX S03

KÄYTTÖOHJE HLS 35. Versio (6) TOIMINTOKAAVIO

Hammastankohissin modernisointi. Heikki Laitasalmi

KÄYTTÖOHJE TEHR LU / TEHR-M

KÄYTTÖOHJE. M2M Point - to - Point

Taitaja2005/Elektroniikka. 1) Resistanssien sarjakytkentä kuormittaa a) enemmän b) vähemmän c) yhtä paljon sähkölähdettä kuin niiden rinnankytkentä

Q = pienin suunniteltu ilmamäärä ja k = puhaltimen tai iirispellin k-arvo.

Nokeval Oy. Käyttöohje 7181

SM210 RS485 - JBUS/MODBUS mittarille SM102E. Käyttöohje

Pulssilaskuri ja I/O-konvertteri. Käyttöohje Versio 1.2

SM211 RS485 - JBUS/MODBUS mittarille SM103E. Käyttöohje

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

Projektityöt. Sami Alaiso, Jyri Lujanen 30. marraskuuta 2009

Etälukija PR Käyttäjäopas. Global Safety & Security Solutions Oy info@globalsafety.fi. PR1000v.2

Asennusohje. EasyLine GSM

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

Supply jännite: Ei kuormaa Tuuletin Vastus Molemmat DC AC Taajuus/taajuudet

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Näppäimistö CT Käyttäjäopas. Global Safety & Security Solutions Oy info@globalsafety.fi. CT1000v.5

MB 20 MODBUS RTU LIITYNTÄYKSIKKÖ SAR 410:LLE TEKNISET TIEDOT. MB 20 on liityntäkortti painesäädin SAR 410:n liittämiseksi Modbus RTU väylään.

Tehtävään on varattu aikaa 8:30 10:00. Seuraavaan tehtävään saat siirtyä aiemminkin. Välipalatarjoilu työpisteisiin 10:00

A. S1-painike HUOM: M-malleissa näytöllä näkyvä mittaustieto voidaan valita myös Modbus-väylän kautta.

PROBYTE CONTROL GSM GSM/SMS-hälytys- ja ohjauslaite

GALVAANISEN EROTTIMEN KÄYTTÖ

MB 20 MODBUS RTU LIITYNTÄYKSIKKÖ SAR 410:LLE TEKNISET TIEDOT. MB 20 on liityntäkortti painesäädin SAR 410:n liittämiseksi Modbus RTU väylään.

Nokeval. Käyttöohje. Monipistenäyttö 532R. No

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

SISÄLLYS. SATEL I-LINK 100 MODBUS I/O-konvertteri Käyttöohje, Versio 1.5

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

HPM RM1 VAL / SKC HYDRAULIC PRESSURE MONITOR RMS-MITTAUSJÄRJESTELMÄLLE KÄSIKIRJA. HPM-RM1 FI.docx / BL 1(5)

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

smartallinone Sarjaliikenteellä toimiva releohjain

KÄYTTÖOHJE JÄNNITTEENKOESTIN BT-69. v 1.0

NP-2T DL ohje. Oy Nylund-Group Ab

Käyttöohje Firmware V1.0-V1.2 HTB230. Anturirasialähetin

L-sarjan mittamuuntimet

Modbus-tiedonsiirtoväylän käyttöönotto

Taitaja2008, Elektroniikkalajin semifinaali

SATEL C-LINK 100 MODBUS

Liipaisun I/O-kortti LogiComm pistoolien pääteasteelle

MFW - I/O:n kaukoluentajärjestelmä

Superintend VR-16 Vikavirtarele 5-johdinverkkoihin Lyhyt käyttöohje

Moottorin lämpötilan mittauksen kytkeminen taajuusmuuttajaan

PR SARJA ASENNUS JA KYTKENTÄ

PROBYTE CONTROL GSM. GSM/SMS-hälytys- ja ohjauslaite. GSM Control 7/11/01 sivu 1/5

SPA-ZC22 Väyläliitäntämoduuli

Tämä on PicoLog Windows ohjelman suomenkielinen pikaohje.

MSnS-extra PCB v1.0. Kevyt käyttöohje

ABB aurinkosähköinvertterit Pikaohje PMU laajennuskortti


NP-3T DL ohje. Nylund-Group

IO-MODUL TEKNINEN OHJE. Sisällysluettelo LIITTIMET JA KAAPELIT YLEISKATSAUS LAITTEISTON KUVAUS. Alla on kaaviokuva kahdesta eri versiosta.

PDS 2.2 yleissäädin PDS 2.2 on yleissäädin, jota voidaan käyttää esimerkiksi paineen, paine-eron, lämpötilan tai kosteuden säädössä.

Pamemetrilista ADAP-KOOL. EKC 201 ja EKC 301

PM10POW24SA-kortti. Ohje

TiiMi Talotekniikka. LATTIALÄMMITYS- TERMOSTAATTI TiiMi 7250TL. v. 1.0

Tuote-esite I/O-järjestelmä

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

VAATIMUKSIA YKSINKERTAISILLE VIKAILMAISIMILLE HSV:N KJ-VERKOSSA

ASENNUSOHJE. Tehovahti Effekt 103RX

HARJOITUSTYÖ: LabVIEW, Liiketunnistin

d) Jos edellä oleva pari vie 10 V:n signaalia 12 bitin siirtojärjestelmässä, niin aiheutuuko edellä olevissa tapauksissa virheitä?

m2 ja Micromon erot Sami Tikkanen Micromon Ei laajennettavissa Laajennettavissa 99 pisteeseen m2 + yksiköllä

IO-MODUL TEKNINEN OHJE. Sisällysluettelo LIITTIMET JA KAAPELIT YLEISKATSAUS LAITTEISTON KUVAUS. Alla on kaaviokuva kahdesta eri versiosta.

Successive approximation AD-muunnin

LAS-TIEDOSTON SISÄLTÖ LIITE 2/1

KÄYTTÖOHJE. Käyttöohje. Avainkytkin R10S.3. Relemoduulit A00.11/A00.12 V

Osakäämikoneiden mittausohje

KÄYTTÖOHJE. SATEL i-link. I/O konvertteri. Versio 1.3

ERISTYSTASON VALVONTARELE MEV-7 (LC-7 ja Kosketusnäyttö)

Nokeval. Käyttöohje. Käsiasema 540. No

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

Elco elektroninen termostaatti ELTH

Energian hallinta Energiamittari Tyyppi EM110

Kocom MultiOne GSM GSM PORTINOHJAIN / KAUKO-OHJAIN

Käyttöohje Ohjelmistoversio V MTR kanavainen langaton lähetin mv- ja TC-tuloilla

Asennus- ja käyttöohje. AquaPro-lähetin. Käyttö- ja asennusohje. Copyright 2015 Labkotec Oy

MrSmart 8-kanavainen lämpötilamittaus ja loggaus, digitoija ja talletusohjelma

Asennusohje SLC-16 Tilannevalo-ohjain. ApplyLight SLC-16 Asennusohje

Sisällysluettelo. Dokumentin tiedot

ASENNUS GOLDen GATE, TBLZ-1/

Taitaja2007/Elektroniikka

Ohjelmoitava päävahvistin WWK-951LTE

Oxix L I U E N N E E N H A P E N M I T T A R I BROCHURE FI 5.40 OXIX BROCHURE 1308

Ohjelmoitava päävahvistin WWK-951. Anvia TV Oy Rengastie Seinäjoki

Nokeval. Pikaohje. Malli 2072 Sarjaviestille RS232 / RS485. No v1.0

SÄHKÖ- SUUNNITTELIJALLE

ERISTYSTASON VALVONTARELE MEV-7 (LC-7/6)

WT KÄYTTÖOHJE WT-1010_käyttöohje_ pdf. GSM-välitin hälytysjärjestelmille

SPA-ZC 17. Väyläliitäntämoduuli SPA-ZC 17. Käyttöohje ja tekninen selostus. Tx SC Rx BB BM MB MM SPA / RS 485 POWER SLAVE 1 MASTER 0 RS

VDV II PRO käyttöohje

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

Sami Tikkanen kwh-mittaus kylmälaitoksesta

Transkriptio:

Fidelix I/O-moduulien käyttöohje 15.12.2003

1 Sisällysluettelo Fidelix I/O-moduulit...4 Tehonsyöttö...4 Tietoliikenne...4 Ohjelmaversio...5 Modbus protokolla...6 Modbus kyselyn kehysrakenne...6 Modbus vastauksen kehysrakenne normaalitilanteessa...7 Modbus vastauksen kehysrakenne poikkeustilanteessa...7 CRC tarkistussumma...8 Toteutetut modbus funktiot...8 03 (0x03) Rekisterien luku (Read Holding Registers)...8 06 (0x06) Yhden rekisterin kirjoittaminen (Write Single Register)...10 16 (0x10) Useamman rekisterin kirjoittaminen (Write Multiple registers)...11 22 (0x16) Rekisterin muokkaaminen bittimaskin avulla (Mask Write Register)...13 43 (0x2B) Moduulin tunnistetietojen luku (Read Device Identification)...15 Moduulien rakenne...20 16-kanavainen digitaalinen tulomoduuli (DI-16), versio V1.10...20 Moduulin kuvaus...21 Hälytys...21 Indikointi...21 Pulssienlaskenta...21 Rekisteriasetukset...21 Rekisteri 0, tulojen tilat, luku...21 Rekisteri 1, hälytys-tilassa olevat jumpperit, luku...21 Rekisteri 2, indikointi-tilassa olevat jumpperit, luku...22 Rekisteri 3, punaisten ledien ohjaus, luku/kirjoitus...22 Rekisteri 4, vihreiden ledien ohjaus, luku/kirjoitus...22 Rekisteri 5, ledien vilkutuksen ohjaus, luku/kirjoitus...22 Rekisterit 6-13, pienimmän sallitun pulssinpituuden asetus, luku/kirjoitus...22 Rekisterit 14-29, pulssilaskurit, luku/kirjoitus...23 8-kanavainen relemoduuli (DO-8)...24 Moduulin kuvaus...24 Rekisteriasetukset...25 Rekisteri 0, releiden ohjaus, luku/kirjoitus...25 Rekisteri 1, asetusarvot, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20)...25 Moduulin kuvaus...27 Jännittemittaus...27 Virtamittaus...27 Resistanssin mittaus...27

2 Rekisteriasetukset...27 Rekisteri 0, analogisen tulon 1 eniten merkitsevät bitit, luku...27 Rekisterit 1-7, analogisten tulojen 2-8 eniten merkitsevät bitit, luku...27 Rekisteri 8, analogisten tulojen 1-4 neljä vähiten merkitsevää bittiä, luku...28 Rekisteri 9, analogisten tulojen 5-8 neljä vähiten merkitsevää bittiä, luku...28 Rekisteri 10, käytettävien tulojen määritys, luku/kirjoitus...28 8-kanavainen analoginen lähtömoduuli (AO-8)...29 Moduulin kuvaus...29 Jänniteviesti...30 Käyttö relelähtönä...30 Virtaviesti...31 Rekisteriasetukset...31 Rekisteri 0, analogisen lähdön 1 ohjaus, luku/kirjoitus...31 Rekisterit 1-7, analogisten lähtöjen 2-8 ohjaus, luku/kirjoitus...31 Rekisteri 8, käytettävien lähtöjen määritys, luku/kirjoitus...31 Rekisteri 9, kanavan 1 asetusarvo, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20).32 Rekisteri 9, kanavien 2-8 asetusarvot, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20)...32 8-kanavainen turvamoduuli (SI-8)...33 Moduulin kuvaus...33 Rekisteriasetukset...34 Rekisteri 0, mittausarvo kanavalle 1, luku...34 Rekisterit 1-7, mittausarvot kanaville 2-8, luku...34 Rekisteri 8, hystereesiasetus, luku/kirjoitus...35 36-kanavainen yhdistelmämoduuli (COMBI-36), versio V1.10...36 Moduulin kuvaus...36 Liite A, Modbus poikkeuskoodit...38 Liite B, CRC:n laskenta esimerkki...39 Liite C, Liittimien numerointi...40 16-kanavainen digitaalinen tulomoduuli...40 8-kanavainen relemoduuli...41 8-kanavainen analoginen tulomoduuli...42 8-kanavainen analoginen lähtömoduuli...43 8-kanavainen turvamoduuli...44 36-kanavainen yhdistelmämoduuli...45 Käyttöohjeen päivityshistoria...48

3 Moduulien firmware historia...49 16-Channel Digital Input Module...49 8-Channel Relay Output Module...49 8-Channel Analog Input Module...50 8-Channel Analog Output Module...50 36-Channel Combi Module...51 Moduulien hardware historia...52 16-Channel Digital Input Module...52 8-Channel Relay Output Module...52 8-Channel Analog Input Module...52 8-Channel Analog Output Module...52 8-Channel Security Module...52 36-Channel Combi Module...52

4 Fidelix I/O-moduulit Tehonsyöttö Moduulien käyttöjännite on 24VDC. Tehonsyötön liittimen navat on merkitty seuraavasti: E (vanhemmissa malleissa 53) = 24VDC, C (vanhemmissa malleissa 51) = 0V. Ruuviliittimellä D (vanhemmissa malleissa 52) on eri merkitys riippuen moduulityypistä. Digitaalisten tulojen moduuli (DI-16) käyttää sitä optoerottimien syöttöön (24VDC). Analogisten lähtöjen moduulissa (AO-8) liittimeen on kytketty lähtöjen maataso, jota tulisi käyttää jos lähdöt käyttävät yhtä yhteistä paluujohdinta. Yhdistelmämoduulilla (COMBI-36) D liittimeen kytketään analogisten lähtöjen maataso ja F liittimeen digitaalisten tulojen optoerottimien syöttö (24VDC). Muilla moduleilla liitin D (vanhemmissa malleissa 52) ei ole käytössä. Tietoliikenne Tietoliikenne ala-aseman ja moduulien välillä on toteutettu sarjaliikenteenä. Sarjaliikenne käyttää RS-485 signalointia ja modbus RTU protokollaa. Moduleilla sarjaliikenne kaapeli kytketään omaan sarjaliikenneliittimiin jonka navat on merkattu kirjaimillla A ja B (vanhemmissa moduleissa numeroilla 55 ja 56). Napaan A kytketään DATA+ ja napaan B DATA-. Liitäntä tulisi tehdä 120 ohmin nimellisimpedanssin kierretyllä parikaapelilla. Kytkentä tehdään siten, että kaikki DATA+ (A) navat (moduleilla ja ala-asemassa) kytketään toiseen kaapelin johtimista ja vastaavasti DATA- (B) navat toiseen johtimeen. FX-2020 ala-asema käyttää RS-485 kommunikointiin COM2 porttia, jossa DATA+ (A) on kytketty nastaan 3 ja DATA- (B) nastaan 1. RS-485 väylä kytketään ketjuttamalla moduulilta toiselle (kuva 1) eli yhteenkään liittimen napaan ei tule enempää kuin kaksi johdinta. Väylä tulee päättää viimeisessä moduulissa kytkemällä RS-485 liittimen läheisyydessä oleva jumpperi (J36 DI-16 moduulilla, J12 DO-8 moduulilla, J20 AI-8 moduulilla, J20 AO-8 moduulilla, J11 SI-8 moduulilla, J11 COMBI-36 moduulilla). Jos näitä ohjetta ei noudateta, saattaa tietoliikenteessä esiintyä virheitä. Kuva 1, Oikea tapa kytkeä RS-485 väylä Kuva 2, Väärä tapa kytkeä RS-485 väylä

5 Tietoliikennenopeus valitaan moduleilla olevalla dip-kytkimellä (S1, paitsi COMBI-36 moduulissa S9). Seuraava taulukko näyttää kuinka haluttu tietoliikennenopeus valitaan. Nopeuden tulee olla sama jokaisella moduulilla ja ala-asemassa. Muut sarjaliikenneparametrit ovat: 8 data bittiä, ei pariteetin tarkastusta, 1 stop bitti. NOPEUS BITRATE2 (BR2) BITRATE1 (BR1) 9600bps off off 19200bps off on 38400bps on off 57600bps on on Jokaiselle moduulille valitaan yksilöllinen osoite samalla dip-kytkimellä kuin tietoliikennenopeuskin (S1, paitsi COMBI-36 moduulissa S9). Osoite valitaan kytkimellä binäärimuodossa. Todellinen osoite saadaan siis laskemalla yhteen kytkimien arvoja. Esimerkiksi jos kytkimet STATION1 (ST1) ja STATION4 (ST4) on kytkettynä saadaan osoitteeksi 1 + 4 = 5. Osoite nolla ei ole sallittu. Jokaiselle moduulille tulee valita toisista poikkeava osoite. Seuraavassa taulukossa on esitetty muutama esimerkki osoitteen valitsemiseksi. ADDRESS ST32 ST16 ST8 ST4 ST2 ST1 1 off off off off off on 2 off off off off on off 3 off off off off on on 62 on on on on on off 63 on on on on on on Jokaisella moduulilla on merkkiledit osoittamassa vastaanotettavaa (RxD) ja lähtevää (TxD) sarjaliikennettä. RxD ja TxD merkinnät on painettu piirikortille vastaavien ledien viereen. Ledit ovat RS-485 liittimen läheisyydessä. Lisäksi piirikortilla on ledi joka vilkkuu kerran sekunnissa osoittaen, että mikrokontrollerin ohjelma on toiminnassa (LED17 DI-16 moduulilla, LED9 DO-8 moduulilla, LED1 AI-8 moduulilla, LED1 AO-8 moduulilla, LED1 SI- 8 moduulilla, LED11 COMBI-36 moduulilla). Ohjelmaversio Yleensä moduulien ohjelmaversio tulisi tarkistaa käyttäen sarjaliityntää ja read device identification funktiota. Ohjelmaversio voidaan kuitenkin tarkistaa myös oikosulkemalla moduulin ohjelmointiliittimen (J34 DI-16 moduulilla, J10 DO-8 moduulilla, J18 AI-8 moduulilla, J18 AO-8 moduulilla, J10 SI-8 moduulilla, J12 COMBI-26 moduulilla) pinnit 2 ja 3, jonka jälkeen moduuli resetoidaan kytkemällä tehonsyöttö pois päältä ja hetken päästä kytkemällä takaisin. Ohjelmointi liitin on 6 napainen piikkirima RS-485 liittimen läheisyydessä (Kuva 3). Moduuli näyttää ohjelmaversion vilkuttamalla lediä jota normaalisti käytetään osoittamaan, että ohjelma toimii (LED17 DI-16 moduulilla, LED9 DO-8 moduulilla, LED1 AI-8 moduulilla, LED1 AO-8 moduulilla, LED1 SI-8 moduulille, LED11 COMBI-36 moduulilla). Ledi vilkkuu aluksi yhtä monta kertaa kuin ohjelman pääversio ja pienen tauon jälkeen yhtä monta kertaa kuin ohjelman aliversio. Kolmen sekunnin tauon jälkeen kierros aloitetaan alusta. Esimerkiksi jos ledi vilkahtaa aluksi kerran ja pienen

6 tauon jälkeen kolme kertaa on moduulin ohjelmaversio 1.3. Kun oikosulku poistetaan jatkaa ohjelma normaalisti eteenpäin. Ohjelmaversion tarkistamiseksi on erittäin suositeltavaa käyttää sarjaliityntää aina kun mahdollista. Kuva 3, Oikosulkemalla pinnit 2 ja 3 käynnistyksen ajaksi, näyttää moduuli ohjelmaversionsa ledin avulla. (kuvassa AO-8 moduuli) Modbus protokolla Tietoliikenne modbus verkossa aloitetaan aina ala-aseman (master) lähettämällä kyselysanomalla moduulille (slave). Moduulit tarkkailevat sarjaväylää jatkuvasti ja havaitessaan kyselyn osoitekentän täsmäävän omaan osoitteeseensa, alkaa moduuli prosessoida modbus sanomaa ja suorittaa tarvittavat toimenpiteet. Muut moduulit, joiden osoite ei täsmää, hylkäävät sanoman. Kun modbus kysely on prosessoitu ja tarvittavat toimenpiteet suoritettu, moduuli muodostaa vastaussanoman ala-asemalle. Onkin tärkeää huomata, että RS-485 väylä voi toimia vain yhteen suuntaan samanaikaisesti, eli vai yksi laite voi lähettää viestejä kerrallaan. RS-485 väylän tulee siis olla vapaana kun moduuli aloittaa vastaussanoman lähettämisen, muuten vastausta ei voida lähettää. Modbus protokollasta on saatavilla runsaasti lisätietoja internetissä osoitteessa http://www.modbus.org. Seuraavassa osiossa esitellään modbus protokollan rakennetta ja Fidelix moduulien hyväksymät modbus funtiot. Modbus kyselyn kehysrakenne Modbus kyselyn kehys koostuu aina moduulin osoitteesta, functiokoodista, lähetettävästä datasta ja virheentarkistuskentästä. Kuvassa 4 on havainnollistettu kyselyn kehysrakenne. Kuva 4, Modbus kyselyn kehysrakenne Module Address: Moduulin osoite jolle kysely on kohdistettu. Kentän koko on yksi tavu. Fidelix moduulien osoite voi olla välillä 1-63. Function Code: Moduulissa suoritettavan function koodi. Kentän koko on yksi tavu. Fidelix moduleissa on toteutettu seuraavat funktiot: 0x03, rekisterien luku (read multiple registers) 0x06, yhden rekisterin kirjoittaminen (write single register) 0x10, useamman rekisterin kirjoittaminen (write multiple registers)

7 Data Bytes: 0x16, rekisterin muokkaaminen bittimaskin avulla (mask write register) 0x2B, moduulin tunnistetietojen luku (read device identification) Funktiokoodien tarkempi toiminta on selvitetty jäljempänä tässä dokumentiss. Moduulille lähetettävä data. Kentän koko on funktiokohtainen. Katso tarkempia tietoja funtioiden kuvauksista. Error Check: Virheentarkistuskenttä. Kentän koko on kaksi tavua. Virheentarkistukseen käytetään 16 bittistä CRC:tä (Cyclic Redundancy Check) Vähiten merkitsevä tavu CRC:stä lähetetään ensin (poiketen datatavujen järjestyksestä). CRC:n laskenta on selvitetty omassa osiossaan tässä dokumentissa. Modbus vastauksen kehysrakenne normaalitilanteessa Saatuaan hyväksytyn sanoman alkaa moduuli välittömästi prosessoimaan sitä ja muodostamaan vastaussanomaa ala-asemalle. Vastaus lähetetään heti kun se on muodostettu tai kolmen millisekunnin kuluttua, riippuen siitä kumpi on pidempi aika. Näin varmistutaan siitä, että ala-asema on valmiina kuuntelemaan vastaussanomaa. Vastauksen muodostamisen ei kuitenkaan tulisi normaalisti kestää pidempää kuin 20ms. Vastaussanoman kehysrakenne vastaa kyselyn rakennetta. Kuva 5, Modbus vastauksen kehysrakenne normaalitilanteessa Module Address: Vastaavan moduulin osoite. Kentän koko on yksi tavu. Function Code: Data Bytes: Suoritetun function koodi (tulisi olla sama kuin kyselyssä). Kentän koko on yksi tavu. Data ala-asemalle. Kentän koko on funktiokohtainen. Katso tarkempia tietoja funktioiden kuvauksista. Error Check: Virheentarkistuskenttä. Kentän koko on kaksi tavua. Virheentarkistukseen käytetään 16 bittistä CRC:tä (Cyclic Redundancy Check) Vähiten merkitsevä tavu CRC:stä lähetetään ensin (poiketen datatavujen järjestyksestä). CRC:n laskenta on selvitetty omassa osiossaan tässä dokumentissa. Modbus vastauksen kehysrakenne poikkeustilanteessa Jos moduuli havaitsee kyselyssä virheen, lähettää se erityisen poikkeussanoman alaasemalle (CRC virheen havaitsemisesta ei lähetetä vastausta). Poikkeuskoodit joita Fidelix moduulit voivat lähettää on selitetty liitteessä A.

8 Kuva 6, Modbus vastauksen kehysrakenne poikkeustilanteessa Module Address: Vastaavan moduulin osoite. Kentän koko on yksi tavu. Function Code: Pyydetyn function koodi kasvatettuna hexadesimaali arvolla 0x80 (eniten merkitsevä bitti asetettu ykköseksi) Kentän koko on yksi tavu. Exception Code: Poikkeuskoodi joka kertoo virheen tyypin. Poikkeuskoodit on selitetty liitteessä A. Kentän koko on yksi tavu. Error Check: Virheentarkistuskenttä. Kentän pituus on kaksi tavua. Virheentarkistukseen käytetään 16 bittistä CRC:tä (Cyclic Redundancy Check) Vähiten merkitsevä tavu CRC:stä lähetetään ensin (poiketen datatavujen järjestyksestä). CRC:n laskenta on selvitetty omassa osiossaan tässä dokumentissa. CRC tarkistussumma CRC (Cyclic redundancy check) tarkistussumma on erittäin luotettava tapa havaita tietoliikenteen aikana mahdollisesti syntyviä virheitä. Lähettävä laite laskee aina viestin loppuun tarkistussumman. Vastaanottava laite laskee saamalleen viestille tarkistussumman uudestaan (vastaanotettua CRC tarkistussummaa ei oteta mukaan laskuihin) ja vertaa sitä vastaanottamaansa summaan. Tarkistussummien tulisi täsmätä, jos näin ei ole on tiedonsiirrossa tapahtunut virheitä ja viesti hylätään. Esimerkki CRC:n laskemiseksi on liitteessä B. Toteutetut modbus funktiot 03 (0x03) Rekisterien luku (Read Holding Registers) Tätä funktiota käytetään rekisteriarvojen lukemiseen moduulista. Funktiota voidaan käyttää yksittäisen rekisterin tai useamman rekisterin muodostaman yhtenäisen lohkon lukemiseen. Kyselyssä määritellään ensimmäinen luettava rekisteri ja luettavien rekisterien lukumäärä. Rekisterien numerointi moduulilla alkaa nollasta. Rekisterien arvot ovat kahden tavun mittaisia ja eniten merkitsevä tavu lähetetään sanomassa ensin. Kysely Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x03 Ensimmäinen luettava rekisteri 2 tavua 0x0000 - viimeinen rekisteri Luettavien rekisterien määrä 2 tavua 1 - rekisterien lukumäärä Virheentarkistussumma 2 tavua 16bit CRC Vastaus normaalitilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x03

9 Tavujen lukumäärä 1 tavu 2 x N* Luetut rekisteriarvot N* x 2 tavua Virheentarkistussumma 2 tavua 16bit CRC *N = Luettujen rekisterien lukumäärä Vastaus poikkeustilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi + 0x80 1 tavu 0x83 Poikkeuskoodi 1 tavu 01, 02, 03 Virheentarkistussumma 2 tavua 16bit CRC Esimerkki, rekisterien 8 10 lukeminen moduulista 2: Kysely Vastaus Kentän nimi (Hex) Kentän nimi (Hex) Moduulin osoite 02 Moduulin osoite 02 Funktiokoodi 03 Funktiokoodi 03 Ensimmäinen osoite Hi 00 Tavujen lukumäärä 06 Ensimmäinen osoite Lo 07 Rekisterin arvo Hi (reg 08) 02 Rekisterien määrä Hi 00 Rekisterin arvo Lo (reg 08) 2B Rekisterien määrä Lo 03 Rekisterin arvo Hi (reg 09) 00 Virheentarkistussumma Lo B4 Rekisterin arvo Lo (reg 09) 00 Virheentarkistussumma Hi 39 Rekisterin arvo Hi (reg 10) 00 Rekisterin arvo Lo (reg 10) 64 Virheentarkistussumma Lo 11 Virheentarkistussumma Hi 8A Rekisterin 08 arvo on esitetty kahdella tavulla ja se on 02 2B heksalukuna tai 555 desimaalilukuna. Rekisterien 9 10 arvot ovat 00 00 ja 00 64 heksalukuina tai vastaavasti 0 ja 100 desimaalilukuina.

10 Kuva 7, Rekisterien luku (Read Holding Registers) tilakaavio 06 (0x06) Yhden rekisterin kirjoittaminen (Write Single Register) Tätä funktiota käytetään yhden rekisterin arvon kirjoittamiseen moduulilla. Kyselyssä määritellään kirjoitettava rekisteri ja siihen kirjoitettava arvo. Rekisterien numerointi alkaa nollasta. Normaalitilanteessa vastaussanoma on identtinen kyselylle ja se lähetetään kun kirjoitus on valmis. Kysely Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x06 Kirjoitettava rekisteri 2 tavua 0x0000 - viimeinen rekisteri Kirjoitettava arvo 2 tavua 0x0000-0xFFFF Virheentarkistussumma 2 tavua 16bit CRC Vastaus normaalitilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x06 Kirjoitettu rekisteri 2 tavua 0x0000 - viimeinen rekisteri Kirjoitettu arvo 2 tavua 0x0000-0xFFFF Virheentarkistussumma 2 tavua 16bit CRC

11 Vastaus poikkeustilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi + 0x80 1 tavu 0x86 Poikkeuskoodi 1 tavu 01, 02 Virheentarkistussumma 2 tavua 16bit CRC Esimerkki, kirjoitetaan rekisteriin 2 moduulilla 2 arvo 00 03 heksalukuna: Kysely Vastaus Kentän nimi (Hex) Kentän nimi (Hex) Moduulin osoite 02 Moduulin osoite 02 Funktiokoodi 06 Funktiokoodi 06 Rekisterin numero Hi 00 Rekisterin numero Hi 00 Rekisterin numero Lo 01 Rekisterin numero Lo 01 Kirjoitettava arvo Hi 00 Rekisterin arvo Hi 00 Kirjoitettava arvo Lo 03 Rekisterin arvo Lo 03 Virheentarkistussumma Lo 98 Virheentarkistussumma Lo 98 Virheentarkistussumma Hi 38 Virheentarkistussumma Hi 38 Kuva 8, Yhden rekisterin kirjoittaminen (Write Single Register) tilakaavio 16 (0x10) Useamman rekisterin kirjoittaminen (Write Multiple registers) Tätä funktiota käytetään useamman rekisterin muodostaman yhtenäisen lohkon kirjoittamiseen. Kyselyssä määritellään ensimmäinen kirjoitettava rekisteri ja kirjoitettavien

12 rekisterien lukumäärä. Lisäksi kyselyssä määritellään rekisterien uudet arvot. Rekisterien numerointi alkaa nollasta. Normaali vastaus sisältää ensimmäisen kirjoitetun rekisterin ja kirjoitettujen rekisterien lukumäärän. Kysely Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x10 Ensimmäinen rekisteri 2 tavua 0x0000 - viimeinen rekisteri Kirjoitettavien rekisterien määrä 2 tavua 1- rekisterien lukumäärä Tavujen lukumäärä sanomassa 1 tavu 2 x N* Kirjoitettavat arvot N* x 2 tavua Rekisterien arvot Virheentarkistussumma 2 tavua 16bit CRC *N = Kirjoitettavien rekisterien määrä Vastaus normaalitilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x10 Ensimmäinen rekisteri 2 tavua 0x0000 - viimeinen rekisteri Kirjoitettujen rekisterien määrä 2 tavua 1 - rekisterien lukumäärä Virheentarkistussumma 2 tavua 16bit CRC Vastaus poikkeustilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi + 0x80 1 tavu 0x90 Poikkeuskoodi 1 tavu 01, 02, 03 Virheentarkistussumma 2 tavua 16bit CRC Esimerkki, kirjoitetaan kaksi rekisteriä moduulissa 2 aloittaen rekisteristä 2, kirjoitettavat arvot 00 0A ja 01 02 heksalukuina: Kysely Vastaus Kentän nimi (Hex) Kentän nimi (Hex) Moduulin osoite 02 Moduulin osoite 02 Funktiokoodi 10 Funktiokoodi 10 Ensimmäinen rekisteri Hi 00 Ensimmäinen rekisteri Hi 00 Ensimmäinen rekisteri Lo 01 Ensimmäinen rekisteri Lo 01 Rekisterien lukumäärä Hi 00 Rekisterien lukumäärä Hi 00 Rekisterien lukumäärä Lo 02 Rekisterien lukumäärä Lo 02 Tavujen lukumäärä 04 Virheentarkistussumma Lo 10 Rekisterin arvo Hi 00 Virheentarkistussumma Hi 3B Rekisterin arvo Lo 0A Rekisterin arvo Hi 01 Rekisterin arvo Lo 02 Virheentarkistussumma Lo 9D Virheentarkistussumma Hi 74

13 Kuva 9, Useamman rekisterin kirjoittaminen (Write Multiple Registers) tilakaavio 22 (0x16) Rekisterin muokkaaminen bittimaskin avulla (Mask Write Register) Tätä funktiota käytetään rekisterin arvon muokkaamiseen AND-maskin, OR-maskin ja rekisterin arvon yhdistelmällä. Funktiota voidaan käyttää yksittäisten bittien asettamiseen tai nollaamiseen. Kyselyssä määritellään kohderekisteri, AND-maski ja OR-maski. Rekisterien numerointi alkaa nollasta. Normaali vastaussanoma on identtinen kyselylle ja se lähetetään kun toiminto on suoritettu. Funktion toiminta: Tulos = ( nykyinen arvo AND And_maski) OR ( Or_maski AND And_maski) Esimerkki: Hex Binary Nykyinen arvo = 12 0001 0010 And_Maski = F2 1111 0010 Or_Maski = 25 0010 0101 And_Maski = 0D 0000 1101 Tulos = 17 0001 0111

14 Huom: Jos OR-maskin arvo on nolla, tulokseksi saadaan (nykyinen arvo) AND (And_maski). Jos puolestaan AND-maski on nolla tolokseksi saadaan OR-maskin arvo. Kysely Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x16 Kohderekisteri 2 tavua 0x0000 - viimeinen rekisteri AND-maski 2 tavua 0x0000-0xFFFF OR-maski 2 tavua 0x0000-0xFFFF Virheentarkistussumma 2 tavua 16bit CRC Vastaus normaalitilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x16 Kohderekisteri 2 tavua 0x0000 - viimeinen rekisteri AND-maski 2 tavua 0x0000-0xFFFF OR-maski 2 tavua 0x0000-0xFFFF Virheentarkistussumma 2 tavua 16bit CRC Vastaus poikkeustilanteessa Moduulin osoite 1 tavu 0x01-0x3F Functiokoodi + 0x80 1 tavu 0x96 Poikkeuskoodi 1 tavu 01, 02 Virheentarkistussumma 2 tavua 16bit CRC Esimerkki, kohderekisteri 5 moduulissa 2. käytetään yllä esitettyjä maskeja. Kysely Vastaus Kentän nimi (Hex) Kentän nimi (Hex) Moduulin osoite 02 Moduulin osoite 02 Funktiokoodi 16 Funktiokoodi 16 Kohdeosoite Hi 00 Kohdeosoite Hi 00 Kohdeosoite Lo 04 Kohdeosoite Lo 04 AND-maski Hi 00 AND-maski Hi 00 AND-maski Lo F2 AND-maski Lo F2 OR-maski Hi 00 OR-maski Hi 00 OR-maski Lo 25 OR-maski Lo 25 Virheentarkistussumma Lo 27 Virheentarkistussumma Lo 27 Virheentarkistussumma Hi FB Virheentarkistussumma Hi FB

15 Kuva 10, Rekisterin muokkaaminen bittimaskin avulla (Mask Write Holding Register) tilakaavio 43 (0x2B) Moduulin tunnistetietojen luku (Read Device Identification) Tämän funktion avulla voidaan lukea moduulien tunnistetiedot. Tunnistetiedot on toteutettu normaalista rekisterirakenteesta erillisenä osiona. Tiedot on jaettu objekteiksi joihin kuhunkin voidaan osoittaa omalla osoitteella jota kutsutaan nimellä ObjectId. Tunnistetiedot jakautuu kolmeen ryhmään, jotka ovat: Perustiedot (Basic category), kaikki tämän ryhmän objektit ovat pakollisia. Ryhmän objektit ovat: Valmistajan nimi (VendorName), Tuotekoodi (ProductCode) ja versionumero (MajorMinorRevision). Valinnaiset tiedot (Regular category), perusryhmän lisäksi valmistaja voi lisätä valinnaisia tunnistetietoja. Tämän ryhmän objektit on määritelty standardissa, mutta niiden toteuttaminen on vapaaehtoista. Fidelix moduleissa on toteutettu objektit: Valmistajan URL (VendorURL) ja Tuotteen nimi (ProductName). Lisätiedot (Extended category), valinnaisten tietojen lisäksi voidaan toteuttaa myös vapaaehtoisia lisätieto-objekteja. Näitä objekteja ei ole määritelty missään ja ne ovat laitekohtaisia. Fidelix moduleissa ei ole lisätieto-objekteja. Object Objektin nimi / kuvaus Tyyppi Ryhmä Id 0x00 Valmistajan nimi (VendorName) ASCII String Perustiedot 0x01 Tuotekoodi (ProductCode) ASCII String (Basic)

16 0x02 Versionumero (MajorMinorRevision) ASCII String 0x03 Valmistajan URL (VendorUrl) ASCII String 0x04 Tuotteen nimi (ProductName ) ASCII String 0x05 Mallin nimi (ModelName) ASCII String 0x06 Lopputuotteen nimi ASCII String 0x07 0x7F 0x80 0xFF (UserApplicationName) Varattu (Reserved) Laitekohtaisia lisätieto-objekteja voidaan määritellä, vapaaehtoisia. Alue [0x80 0xFF] määritellään laitekohtaisesti. Laitekohtainen Valinnaiset tiedot (Regular) Lisätiedot (Extended) Kysely Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x2B MEI Type* 1 tavu 0x0E Read Device ID code 1 tavu 01 / 02 / 03 / 04 Object Id 1 tavu 0x00-0xFF Virheentarkistussumma 2 tavua 16bit CRC * MEI = Modbus Encapsulated Interface Vastaus normaalitilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi 1 tavu 0x2B MEI Type 1 tavu 0x0E Read Device ID code 1 tavu 01 / 02 / 03 / 04 Conformity level 1 tavu More Folows 1 tavu 00 Next Object Id 1 tavu 00 Number of objects List Of Object ID Object length Object Value 1 tavu 1 tavu 1 tavu 1 tavu Virheentarkistussumma 2 tavua 16bit CRC Vastaus poikkeustilanteessa Moduulin osoite 1 tavu 0x01-0x3F Funktiokoodi + 0x80 1 tavu 0xAB MEI Type 1 tavu 0x0E Poikkeuskoodi 1 tavu 01, 02, 03 Virheentarkistussumma 2 tavua 16bit CRC MEI Type tulee olla 14 (0xE0 heksalukuna), jotta tunnistetietojen luku onnistuu.

17 Parametrin "Read Device ID code" voidaan määritellä neljä erilaista tapaa lukea tunnistetietoja : 01 : Pyyntö lukea perustiedot (stream access) 02 : Pyyntö lukea valinnaiset tiedot (stream access) 03 : Pyyntö lukea lisätiedot (stream access) 04 : Pyyntö lukea yksittäinen objekti (individual access) Poikkeuskoodi 03 lähetetään vastauksena jos Read Device ID code ei ole sallittu. Tapauksissa joissa pyydetyt tunnistetiedot eivät mahdu yhteen vastauskehykseen voidaan vastaus jakaa useaksi sanomaksi. Object Id määrittää ensimmäisen luettavan objektin ja sen arvoksi asetetaan ensimmäinen objekti joka halutaan lukea. Seuraavilla lukukerroilla Object Id:ksi asetetaan vastausviestissä saatu arvo, jolloin lukemista jatketaan seuraavasta objektista jota ei ole vielä luettu. Fidelix moduulit eivät kuitenkaan käytä moniosaisia sanomia, koska kaikki toteutetut objektit mahtuvat yhteen vastauskehykseen. Yksittäistä objektia luettaessa (Read Device ID code = 04) Object Id määrittää luettavan objektin. Jos Object Id ei täsmää olemassa olevien objektien kanssa, vastaa moduuli poikkeuskoodilla 02 (Illegal data address). Vastauksen parametrien kuvaus : Funktiokoodi: Funktiokoodi 43 (decimal) 0x2B (hex) MEI Type: 14 (0x0E) MEI Type, tulee olla 14 (0x0E) tunnistetietoja luettaessa. ReadDevId code: Sama kuin kysytty Read Device ID code, 01, 02, 03 tai 04 Conformity Level: Identification conformity level of the device and type of supported access 01 : perustiedot (stream access only) 02 : valinnaiset tiedot (stream access only) 03 : lisätiedot (stream access only) 81 : perustiedot (stream access and individual access) 82 : valinnaiset tiedot (stream access and individual access) 83 : lisätiedot (stream access and individual access) More Follows: tapauksessa ReadDevId code = 01, 02 tai 03 (stream access), Jos tunnistetiedot eivät mahdu yhteen vastauskehykseen, tarvitaan useampia sanomia. Fidelix moduulit eivät kuitenkaan käytä moniosaisia sanomia, joten tämä kenttä on aina nolla. 00 : ei lisää objekteja FF : lisää objekteja luettavissa, uusi kysely tarpeen tapauksessa ReadDevId code = 04 (individual access), Tämä kenttä tulee olla nolla. Next Object Id: Jos "MoreFollows = FF", tämä parametri sisältää seuraavan objektin osoitteen. Jos "MoreFollows = 00", tämä parametri on nolla Number Of Objects: Vastaukseen sisältyvien objektien lukumäärä (Yksittäistä objektia luettaessa, Number Of Objects = 1)

18 Object0.Id: Ensimmäisen objektin ObjectId (stream access) tai pyydetyn objektin ObjectId (individual access) Object0.Length: Ensimmäisen objektin koko tavuina Object0.Value: Ensimmäisen objektin arvo (Object0.Length tavua) ObjectN.Id: Viimeisen vastaukseen sisältyvän objektin ObjectId ObjectN.Length: Viimeisen objektin koko tavuina ObjectN.Value: Viimeisen objektin arvo (ObjectN.Length tavua) Esimerkki, perustunnistetietojen lukeminen moduulilta 2. Kysely Vastaus Kentän nimi Arvo Kentän nimi Arvo Moduulin osoite 02 Moduulin osoite 02 Funktiokoodi 2B Funktiokoodi 2B MEI Type 0E MEI Type 0E Read Dev Id code 01 Read Dev Id Code 01 Object Id 00 Conformity Level 01 Virheentarkistussumma Lo 34 More Follows 00 Virheentarkistussumma Hi 77 NextObjectId 00 Number Of Objects 03 Object Id 00 Object Length 07 Object Value " Fidelix" Object Id 01 Object Length 05 Object Value " DI-16 " Object Id 02 Object Length 05 Object Value "V1.00" Virheentarkistussumma Lo 4F Virheentarkistussumma Hi 71

19 Kuva 11, Moduulin tunnistetietojen luku (Read Device Identification) tilakaavio

20 Moduulien rakenne 16-kanavainen digitaalinen tulomoduuli (DI-16), versio V1.10 Kuva 12, 16-kanavainen digitaalinen tulomoduuli, komponenttiensijoittelu Kuva 13, tulopiirin kytkentä (tulo 1) Kuva 14, Toimintamoodin valinta jumppereilla

21 Moduulin kuvaus DI-16 moduulilla on 16 optisesti erotettua tuloa. Tuloihin tulee kytkeä vain potentiaalivapaita kytkimiä (kuten esitetty kuvassa 13). Jokainen tulo voidaan asettaa kolmeen eri toimintamoodiin jumppereilla J18-J33. Toimintamoodit ovat hälytys (Alarm mode), indikointi (indication mode) ja pulssienlaskenta (pulse counting mode). Optoerottimet tarvitsevat toimiakseen 24VDC jännitteen, joka kytketään tehonsyöttöliittimen ruuviliittimeen D (52). Hälytys Hälytys toimintamoodi valitaan asettamalla jumpperi yläasentoon (kuva 14, tilanne 1). Tässä tilassa kaikki pulssit jotka ovat pidempiä kuin minimi pulssinpituudeksi on asetettu havainnoidaan. Ledien ohjaus tapahtuu ala-aseman antamilla rekisteriohjauksilla (kts. kohta rekisteriasetukset). Indikointi Indikointi valitaan asettamalla jumpperi ala-asentoon (kuva 14, tilanne 2). Tässä tilassa kaikki pulssit jotka ovat pidempiä kuin minimi pulssinpituudeksi on asetettu havainnoidaan ja tuloa vastaava vihreä ledi ohjataan päälle pulssin keston ajaksi. Pulssienlaskenta Pulssienlaskenta on valittu kun jumpperia ei kytketä ollenkaan (kuva 14, tilanne 3). Tämä toimintamoodi on toiminnallisesti sama kuin indikointi, mutta tätä käytetään osoittamaan, että tuloa käytetään pulssien laskentaan. Kaikki pulssit joiden kesto ylittää minimi pulssinpituudeksi asetetun arvon lasketaan. Rekisteriasetukset Rekisteri 0, tulojen tilat, luku Rekisteri 0 osoittaa tulojen tilat. Bit 0 näyttää tulon 1 tilan ja vastaavasti Bit 15 näyttää tulon 16 tilan. Kun tulo on aktiivinen (kytkin johtaa) minimi pulssinpituuden vaatiman ajan nollataan tuloa vastaava bitti, vastaavasti tulon ollessa avoin (kytkin ei johda) asetetun ajan, bitti asetetaan ykköseksi. Tätä rekisteriä voidaan vain lukea. Rekisteri 1, hälytys-tilassa olevat jumpperit, luku Rekisteri 1 osoittaa hälytys-jumpperien (jumpperi yläasennossa, kuva 14, tilanne 1) tilan. Bit 0 näyttää tuloa 1 ohjaavan jumpperin tilan ja vastaavasti Bit 15 tuloa 16 ohjaavan jumpperin tilan. Jos kyseinen jumpperi on asetettu vastaava bitti rekisterissä saa arvon nolla. Jumpperin puuttuessa vastaava rekisterin arvo on yksi. Tätä rekisteriä voidaan vain lukea.

22 Rekisteri 2, indikointi-tilassa olevat jumpperit, luku Rekisteri 2 osoittaa indikointi-jumpperien (jumpperi ala-asennossa, kuva 14, tilanne 2) tilan. Bit 0 näyttää tuloa 1 ohjaavan jumpperin tilan ja vastaavasti Bit 15 tuloa 16 ohjaavan jumpperin tilan. Jos kyseinen jumpperi on asetettu vastaava bitti rekisterissä saa arvon nolla. Jumpperin puuttuessa vastaava rekisterin arvo on yksi. Tätä rekisteriä voidaan vain lukea. Rekisteri 3, punaisten ledien ohjaus, luku/kirjoitus Rekisteri 3 ohjaa punaisia ledejä. Bit 0 ohjaa tulon 1 lediä ja vastaavasti Bit 15 tulon 16 lediä. Kun bitti asetetaan ykköseksi sytytetään bittiä vastaavan tulon punainen ledi, nolla puolestaan tarkoittaa ettei ledi ole päällä. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisteri 4, vihreiden ledien ohjaus, luku/kirjoitus Rekisteri 4 ohjaa vihreitä ledejä. Bit 0 ohjaa tulon 1 lediä ja vastaavasti Bit 15 tulon 16 lediä. Kun bitti asetetaan ykköseksi sytytetään bittiä vastaavan tulon vihreä ledi, nolla puolestaan tarkoittaa ettei ledi ole päällä. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisteri 5, ledien vilkutuksen ohjaus, luku/kirjoitus Rekisteri 5 ohjaa ledien vilkutusta. Bit 0 ohjaa tulon 1 lediä ja vastaavasti Bit 15 tulon 16 lediä. Kun bitti asetetaan ykköseksi alkaa vastaava ledi vilkkumaan (jos ledi on päällä), kun bitti asetetaan nollaksi ledi toimii normaalisti. Vilkutustaajuutta ei voi muuttaa. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisterit 6-13, pienimmän sallitun pulssinpituuden asetus, luku/kirjoitus Rekisterit 6-13 asettavat minimi pulssinpituuden. Kaikki pulssit jotka ovat lyhyempiä kuin näissä rekistereissä on asetettu hylätään. Pulssinpituus asetus on voimassa sekä nousevalla että laskevalla pulssin reunalla. Erityisen tärkeää on huomata, että yhdellä rekisterillä asetetaan kahden tulon minimi pulssinpituus. Alemmat kahdeksan bittiä ovat aina parittomille tuloille (tulot 1, 3, 5, 7, 9, 11, 13, 15) ja ylemmät 8 bittiä parillisille tuloille (tulot 2, 4, 6, 8, 10, 12, 14, 16). Rekisteri 6 asettaa pulssinpituudet tuloille 1 ja 2, rekisteri 7 tuloille 3 ja 4, rekisteri 8 tuloille 5 ja 6, jne. Kertomalla pulssinpituus asetusarvo viidellä millisekunnilla saadaan todellinen pulssinpituus. Esimerkiksi jos rekisteriin 6 asetetaan heksadesimaali arvo 0x0A01 tarkoittaa se sitä, että tulon yksi minimi hyväksyttävä pulssinpituus on 5ms (0x01 * 5ms) ja tulolle kaksi 50ms (0x0A * 5ms). Maksimiasetus arvo on 1275ms (0xFF * 5ms). Näitä rekistereitä voidaan lukea ja kirjoittaa.

23 Rekisterit 14-29, pulssilaskurit, luku/kirjoitus Rekistereihin 14-29 lasketaan kaikki minimi pulssinpituus vaatimukset täyttävät pulssit. Rekisteri 14 on tulon 1 pulssilaskuri, rekisteri 15 tulon 2, rekisteri 16 tulon 3, jne. Laskurit ovat 16 bittisiä laskureita joten ne pyörähtävät ympäri 65536 pulssin jälkeen. Näitä rekistereitä voidaan lukea ja kirjoittaa.

24 8-kanavainen relemoduuli (DO-8) Kuva 15, 8-kanavainen relemoduuli, komponenttiensijoittelu Kuva 16, Lähtöpiirin kytkentä (lähtö 1) Kuva 17, Kytkimen toiminta eri asennoissa Moduulin kuvaus DO-8 moduulilla on kahdeksan relettä, joissa kussakin yksi vaihtokosketin. Kaikkia releitä voidaan ohjata, joko manuaalisesti kytkimellä tai sitten käyttäen sarjaliikennettä (katso toiminta tilat kuvasta 17). Jokaisella lähdöllä on myös oma ledi, joka näyttää releen tilan. Releiden kytkentä on esitetty kuvassa 15. Suurin sallittu kuormitus on 10A@250VAC tai 10A@30VDC resistiivisellä kuormalla ja 7.5A@250VAC tai 5A@30VDC induktiivisella kuormalla (p.f. = 0.4, L/R = 7ms).

25 Rekisteriasetukset Rekisteri 0, releiden ohjaus, luku/kirjoitus Rekisteri 0 ohjaa lähtöjen releitä. Rele vetää kun sitä vastaava bitti asetetaan (jos kytkin on AUTO-asennossa). Nollaamalla bitti rele vapautuu. Vain kahdeksan alinta bittiä on käytössä. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisteri 1, asetusarvot, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20) Rekisteri 1 määrittelee lähtöjen asetusarvot. Asetusarvoja käytetään kun moduuliin kytketään sähköt, eikä uusia arvoja alakeskukselta ole vielä saatu. Rekisterin ylempi tavu määrittelee jokaiselle lähdölle yksilöllisesti, onko asetusarvo käytössä. Jos lähtöä vastaava bitti on asetettu ykköseksi, käytetään alemmassa tavussa olevaa asetusarvoa. Nollalla puolestaan lähtö säilyttää entisen tilansa. Samoja asetusarvoja käytetään myös jos havaitaan tiedonsiirtovirhe. Tiedonsiirtovirheeksi tulkitaan yli 30 sekuntia kestävä jakso, jonka aikana moduulille ei tule yhtään sille itselleen osoitettua modbus-sanomaa. Tätä rekisteriä voidaan lukea ja kirjoittaa.

26 8-kanavainen analoginen tulomoduuli (AI-8) Kuva 18, 8-kanavainen analoginen tulomoduuli, komponenttiensijoittelu Kuva 19, Analogisen tulopiirin kytkentä (tulo 1) Kuva 20, Anturityypin valinta jumpperilla

27 Moduulin kuvaus AI-8 moduulilla on kahdeksan multipleksattua analogista tuloa. Mittaukset tehdään 20 bittisellä delta sigma AD-muuntimella. Käytössä oleva anturityyppi valitaan jokaiselle tulolle yksilöllisesti käyttäen jumppereita J10-J17. Ohje valinnan suorittamiseksi on painettu piirikortille ja lisäksi se on esitetty kuvassa 20. Liittimen polariteetti on painettu piirikortille ja se on myös esitetty kuvassa 18. Mahdollisia anturityyppejä ovat jänniteviesti (alue 0-10V), virtaviesti (alue 0-25mA) ja resistiivinen anturi. Jännittemittaus Jännitemittaus valitaan asettamalla jumpperi oikealle (kuva 20, tilanne 1). Mittausalue on 0-10V. Tulon impedanssi on noin 8.8 kilo-ohmia. Virtamittaus Virtamittaus valitaan asettamalla jumpperi keskiasentoon (kuva 20, tilanne 2). Mittausalue on 0-25mA. Virtamittaus tehdään lisäämällä virtasilmukkaan 100ohmin vastus ja mittaamalla vastuksen yli jäävä jännite. Virta voidaan laskea seuraavalla kaavalla, U I =. 100 Ω Resistanssin mittaus Resistanssin mittaus valitaan asettamalla jumpperi vasemmalle (kuva 20, tilanne 3). Referenssi jännite syötetään 4.7 kilo-ohmin tarkkuusvastuksen kautta. Tämä tarkkuusvastus ja mitattava vastus muodostavat jännitteenjakokytkennän joka mitataan. Mitatun vastuksen resistanssi saadaan laskettua seuraavalla kaavalla, 4700Ω U R =. 2.5V U Jos resistiivistä anturia käytetään esimerkiksi lämpötilan mittaamiseen, tulee resistanssi arvo muuttaa lämpötilaksi sopivalla muunnostaulukolla. Tarvittava muunnostaulukko toimitetaan yleensä anturin mukana. Rekisteriasetukset Rekisteri 0, analogisen tulon 1 eniten merkitsevät bitit, luku Rekisteri 0 sisältää analogisen tulon 1 mittauksen 16 eniten merkitsevää bittiä. Jos 16 bittinen tarkkuus on riittävä voidaan vastaava jännitearvo laskea seuraavalla, rekisterin _ arvo U = 2. 5V 65535 Jos 20 bittinen tarkkuus on tarpeen, katso rekisteri 8. Tätä rekisteriä voidaan vain lukea. Rekisterit 1-7, analogisten tulojen 2-8 eniten merkitsevät bitit, luku Toiminta sama kuin rekisterin 0, mutta tuloille 2-8. Näitä rekistereitä voidaan vain lukea.

28 Rekisteri 8, analogisten tulojen 1-4 neljä vähiten merkitsevää bittiä, luku Rekisterissä 8 on analogisten tulojen 1-4 mittausarvojen 4 vähiten merkitsevää bittiä. Yhdistämällä nämä 4 bittiä vastaavaan 16 bittiseen arvoon (16 bittiset arvot rekistereissä 0-7) saavutetaan 20 bittinen mittausarvo. Käytettäessä 20 bittistä tarkkuutta vastaava jännitearvo voidaan laskea seuraavalla kaavalla, mitattu _ arvo U = 2. 5V 1048575 Tätä rekisteriä voidaan vain lukea. Rekisteri 9, analogisten tulojen 5-8 neljä vähiten merkitsevää bittiä, luku Toiminta sama kuin rekisterin 9, mutta tuloille 5-8. Tätä rekisteriä voidaan vain lukea. Rekisteri 10, käytettävien tulojen määritys, luku/kirjoitus Rekisterissä 10 määritellään käytettävät tulot. Jos tuloa vastaava bitti on asetettu on tulo käytössä. Yhden mittauksen tekemiseen menee noin 170ms, joten jos kaikki kahdeksan kanavaa on käytössä toistetaan jokainen mittaus noin 1.36 sekunnin välein. Jos nopeampaa vasteaikaa tarvitaan voidaan käytetävien tulojen määrää pienentää siten, että haluttu vasteaika saavutetaan. Vain kahdeksan alinta bittiä on käytössä. Tätä rekisteriä voidaan lukea ja kirjoittaa.

29 8-kanavainen analoginen lähtömoduuli (AO-8) Kuva 21, 8-kanavainen analoginen lähtömoduuli, komponenttiensijoittelu Kuva 22, Analogisen lähtöpiirin kytkentä (lähtö 1) Moduulin kuvaus AO-8 moduulilla on kahdeksan itsenäisesti toimivaa analogista lähtöä. Lähtöjännite voidaan ohjelmoida välille 0-10V. Lähdöt ovat galvaanisesti erotettu ohjauspiiristä, mutta ei toisistaan. Liittimien polariteetti on painettu piirikortille ja se on myös esitetty kuvassa 21. Jumppereita J10-J17 voidaan käyttää oikosulkemaan lähtöjen 1 kilo-ohmin vastukset (katso kuva 22). Vastus voidaan ohittaa oikosulkupalalla jos tarvitaan suurempaa virtaa kuin 1 kilo-ohmin vastuksen läpi saadaan, tätä ei kuitenkaan suositella, koska vastus suojaa lähtöä.

30 Jänniteviesti Yleisin tapa käyttää analogista lähtöä on käyttää sitä jänniteohjaukseen. Lähtöön voidaan ohjelmoida jännite välillä 0-10V. Yleensä jänniteohjauksissa 1 kilo-ohmin sarjavastuksesta ei ole haittaa, mutta tarvittaessa se voidaan ohittaa jos ohjattavan piirin tuloimpedanssi on niin pieni, ettei ohjaus muuten onnistu. Lähtöpiirit ovat galvaanisesti erotettu ohjauspiiristä ja syöttävästä teholähteestä, mutta eivät toisistaan. Jos galvanista erotusta ei tarvita kytketään tehonsyöttöliittimen keskimmäinen napa (merkintä D tai 52) teholähteen nollatasoon. Käyttö relelähtönä Analogisia lähtöjä voidaan käyttää myös releiden ohjaukseen tietyin rajoituksin, yleensä on kuitenkin suositeltavampaa käyttää relemoduulia. Ohjattaessa releitä suoraan on huomioitava lähtöjen rajallinen virranajokyky, releiksi tulisikin valita mahdollisimman pienivirtainen malli. Normaalissa jänniteohjauskäytössä lähtöjen virran rajoittuvan maksimissaa 10mA/lähtö 1 kilo-ohmin rajoitusvastusten ansiosta. Suorassa relekäytössä joudutaan kuitenkin rajoitusvastus ohittamaan oikosulkupalalla, jotta releen ohjaukseen saadaan tarpeeksi virtaa, virran rajoitus jää käyttäjän vastuulle. Lähdöt jakautuvat kahdelle eri ohjauspiirille siten, että lähdöt 1-4 ovat toisen piirin ohjaamat ja lähdöt 5-8 toisen. Jos releitä kytketään enemmän kuin yksi on hyvä jakaa kuormitus mahdollisimman tasaisesti eri lähtöpiireille. Eli jos kytketään kaksi relettä on suositeltavaa kytkeä ne esimerkiksi lähtöihin 1 ja 5. Suositeltava maksimivirta lähtöä kohden on 20mA. Kaikkien lähtöjen yhteenlaskettu virta ei saa missään olosuhteissa ylittää 120mA. Releiden kelalle tulee kytkeä estosuuntainen diodi (fly-wheel diodi) suojaamaan lähtöpiiriä jännitepiikeiltä. Kuvassa 23 on esitetty releen suora kytkentä analogiseen lähtöön. Kuva 23, Releen suora kytkentä analogiseen lähtöön Jos useampia releitä halutaan käyttää yhtäaikaa tai käytettävissä olevien releiden virta on liian suuri ohjattavaksi suoraan, voidaan niitä ohjata transistorikytkennän avulla. Transistorin käyttö relekytkenöissä on muutenkin suositeltavaa, koska lähtöpiirien suojaus säilyy koskemattomana ja kuormitus pysyy pienempänä. Kuvassa 24 on esitetty transistorikytkentä releen ohjaamiseksi analogisen lähdön avulla. Suurivirtaisia releitä ohjattaessa on releiden syöttö kytkettävä suoraan teholähteeltä ja analogisten lähtöjen nollataso kytkeä teholähteen nollatasoon. Tarvittaessa galvaaninen erotus voidaan säilyttää käyttämällä optoerotinta. Optoerotinkytkentää käytettäessä lähdön suojavastusta ei saa ohittaa oikosulkupalalla.

31 Kuva 24, Transistori- ja optoerotinkytkentä releen kytkemiseksi analogiseen lähtöön Virtaviesti Analogista lähtöä voidaan käyttää myös virtaviestiohjaukseen. Virtaviestiä käytettäessä pätee kuitenkin tiettyjä rajoituksia. Lähdössä oleva 1 kilo-ohmin vastus täytyy ohittaa oikosulkupalalla virtaviestiohjauksessa, jotta 20mA virta olisi mahdollista saavuttaa. Samalla lähtöpiirin virtarajoitus poistuu ja virran rajoittaminen kohtuulliselle tasolle jää käyttäjän huolehdittavaksi. Lisäksi on huomioitava, että analogisen lähdön maksimijännite on 10V, joka ei välttämättä riitä kaikissa järjestelmissä 20mA virran saavuttamiseen. Moduulilla ei ole toteutettu virtaohjeen takaisinkytkentää, joten lähtövirta on riippuvainen ohjattavan laitteen impedanssista ja siksi takaisinkytkentä täytyy toteuttaa esimerkiksi erillisen mittauspisteen avulla tai muuten varmistua ohjausvirran suuruudesta. Lähtöpiirien kuormitukseen pätee samat ohjeet kuin releitä ohjattaessa. Rekisteriasetukset Rekisteri 0, analogisen lähdön 1 ohjaus, luku/kirjoitus Tämä rekisteri ohjaa lähdön 1 jännitettä. Vain 10 vähiten merkitsevää bittiä on käytössä. Lähdön jännite voidaan laskea seuraavalla kaavalla, rekisterin _ arvo U = 10V. 1023 Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisterit 1-7, analogisten lähtöjen 2-8 ohjaus, luku/kirjoitus Toiminta sama kuin rekisterin 0, mutta lähdöille 2-8. Näitä rekistereitä voidaan lukea ja kirjoittaa. Rekisteri 8, käytettävien lähtöjen määritys, luku/kirjoitus

32 Rekisterissä 8 määritellään käytössä olevat lähdöt. Jos lähtöä vastaava bitti on asetettu on lähtö käytössä. Bitin nollaaminen poistaa lähdön käytöstä ja kytkee 100 kilo-ohmin vastuksella lähdöstä maihin. Vain 8 alinta bittiä on käytössä. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisteri 9, kanavan 1 asetusarvo, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20) Rekisteri 9 määrittelee lähdön 1 asetusarvon. Asetusarvoa käytetään kun moduuliin kytketään sähköt, eikä uutta arvoa alakeskukselta ole vielä saatu. Rekisterin ylin bitti määrittelee lähdölle yksilöllisesti, onko asetusarvo käytössä. Jos lähtöä vastaava bitti on asetettu ykköseksi, käytetään kymmenen alimman bitin muodostamaa asetusarvoa. Nollalla puolestaan lähtö säilyttää entisen tilansa. Samoja asetusarvoja käytetään myös jos havaitaan tiedonsiirtovirhe. Tiedonsiirtovirheeksi tulkitaan yli 30 sekuntia kestävä jakso, jonka aikana moduulille ei tule yhtään sille itselleen osoitettua modbus-sanomaa. Tätä rekisteriä voidaan lukea ja kirjoittaa. Rekisteri 10-16, kanavien 2-8 asetusarvot, luku/kirjoitus (alkaen firmware-versiosta 1.10 ja 2.20) Toiminta sama kuin rekisterissä 9, mutta kanaville 2-8.

33 8-kanavainen turvamoduuli (SI-8) Kuva 24, 8-kanavainen turvamoduuli, komponenttiensijoittelu Kuva 25, tulopiirin kytkentä (tulo 1) Moduulin kuvaus Turvamoduulia käytetään kohteissa, joissa tarvitaan analogista mittausta nopealla vasteajalla. Tyypillisesti tällaisia kohteita ovat esimerkiksi rikosilmoitusjärjestelmien vastussilmukat, joissa lyhyetkin pulssit on havaittava. Mittaukset suoritetaan 8- kanavaiseksi multipleksoidulla 10-bittisellä AD muuntimella. Mittaukseen soveltuu vastusarvot välillä 470 Ω - 47 kω.

34 Kunkin kanavan mittaaminen tapahtuu 20 ms kestävänä mittauksena. Jokainen kanava mitataan 160 ms välein, kuvan 26 mukaisesti. Jos kahden peräkkäisen mittauksen tulos on asetetun arvon sisällä, hyväksytään mittaustulos. Hyväksyttyä mittaustulosta verrataan edelliseen tallennettuun arvoon ja tulosten poiketessa toisistaan hystereesirekisterissä asetetun arvon mukaisesti, tallennetaan tulos. Mittaustulokset tallennetaan nelipaikkaiseen rengaspuskuriin. Rengaspuskurista vanhin arvo siirretään aina modbus-rekisteriin sitä mukaa kun ilmoitinkeskus käy lukemassa rekisterin. Näin varmistutaan, että kaikki mittaustulokset keritän siirtää ilmoitinkeskukseen. Jos ilmoitinkeskus ei kuitenkaan kerkeä lukemaan kaikkea dataa vaan rengaspuskuri pääsee täyttymään, kirjoitetaan uusi mittausarvo vanhimman arvon päälle ja merkiksi tästä asetetaan ylin bitti ykköseksi. Tällaisen muutetun arvon saadessaan ilmoitinkeskus voi päätellä tiedonsiirron toimineen riittämättömästi. Jos viiden peräkkäisen mittauksen aikana ei saada kahta peräkkäistä yhtenevää mittaustulosta, välitetään kaikki mittaustulokset suoraan rengaspuskuriin. Näin vältetään sabotaasimahdollisuus tai mahdollinen ilmaisimen/silmukan vikaantuminen havaitaan ajoissa. Kuva 26, signaalin mittaaminen turvamoduulilla Rekisteriasetukset Rekisteri 0, mittausarvo kanavalle 1, luku Kanavan 1 mittausarvo. Rekisterin arvo voidaan muuttaa resistanssiarvoksi alla olevalla kaavalla, 4700Ω rekisterin _ arvo R =. 1023 rekisterin _ arvo Muunnos ei kuitenkaan ole yleensä tarpeen, koska hälytyksen raja-arvot voidaan esittää suoraan mittausrekisterin arvoina. Mittaustuloksen esittämiseen rekisteristä on käytössä vain 10 alinta bittiä. Rekisterin ylin bitti rengaspuskurin ylivuodon merkkibitti. Jos silmukan neljäpaikkainen rengaspuskuri vuotaa yli, asetetaan sen merkiksi rekisterin ylin bitti ykköseksi. Näin rikosilmoitinkeskus voi päätellä tiedonsiirrossa tai silmukassa olevan vikaa. Tätä rekisteriä voidaan vain lukea. Rekisterit 1-7, mittausarvot kanaville 2-8, luku Toiminta sama kuin rekisterin 0, mutta tuloille 2-8. Näitä rekistereitä voidaan vain lukea.

35 Rekisteri 8, hystereesiasetus, luku/kirjoitus Tällä rekisterillä määritellään hystereesiarvo, jota pienempiä muutoksia mittaustuloksissa ei noteerata uusina arvoina. Samalla hystereesi määrittää myös marginaalin, jonka sisällä kahden peräkkäisen mittaustuloksen tulee olla, jotta mittaus voidaan hyväksyä. Tätä rekisteriä voidaan lukea ja kirjoittaa.

36 36-kanavainen yhdistelmämoduuli (COMBI-36), versio V1.10 Kuva 27, 36-kanavainen yhdistelmämoduuli, komponenttiensijoittelu Moduulin kuvaus Yhdistelmämoduuli sisältää 12 digitaalista tuloa, 8 relelähtöä, 8 analogista tuloa ja 8 analogista lähtöä. Yhdistelmämoduuli on suunniteltu ohjelmallisesti täysin yhteensopivaksi yksittäisten moduulien kanssa ja sen takia se näkyy käyttäjälle neljänä erillisenä moduulina. Yhdistelmä moduuli myös varaa aina neljä osoitepaikkaa. Moduulilla olevalla osoitteenvalintakytkimellä valitaan digitaalisten tulojen osoite, nämä tulot näkyvät tavallisena DI-moduulina. Tästä osoitteesta seuraavana näkyy relelähdöt DO-moduulina, sitä seuraavassa osoitteessa analogiset tulot AI-moduulina ja viimeisenä analogiset lähdöt AO-moduulina. Jos moduulin osoitteeksi valitaan esimerkiksi 10, näkyvät lähdöt käyttäjälle seuraavasti: Signaalit Vastaava moduuli Osoite Digitaaliset tulot DI-16 10 Relelähdöt DO-8 11 Analogiset tulot AI-8 12 Analogiset lähdöt AO-8 13 Digitaalisia tuloja lukuun ottamatta moduulit ovat täysin vastaavia yksittäisten moduulien kanssa, sekä rekisterirakenteeltaan, että kytkennän osalta. Liittimien erilainen numerointi

37 (katso liite C) ja fyysinen koko täytyy kuitenkin huomioida. Digitaalisten tulojen osalta eroavaisuus DI-16 moduuliin on tulojen määrässä, yhdistelmämoduulilla on 12 tuloa kun DI-16 kortilla niitä on 16. Rekisterirakenne on toteutettu yhteensopivaksi DI-16 moduulin kanssa, tulojen 13-16 rekisterien (rekisterit 12-13 ja 26-29, sekä bitit 12-15 rekistereistä 0-5) arvoilla ei ole kuitenkaan vaikutusta moduulin toimintaan. Moduulien tarkempi toiminta ja rekisterirakenne on selostettu erillisiä moduleja käsittelevässä osiossa. Yhdistelmämoduuli voidaan erottaa yksittäisistä moduleista lukemalla moduulin tunnistetiedot ( Read Device Identification funktio). Yhdistelmämoduulin tunnistetiedot eroaa Tuotteen nimi (ProductName) kentän osalta. Kentän arvo yhdistelmämoduulille on "36- Channel Combi Module".

38 Liite A, Modbus poikkeuskoodit MODBUS poikkeuskoodit Koodi Nimi Selitys 01 ILLEGAL FUNCTION Kyselyn funktiokoodi ei ole sallittu moduulille. Tämä voi johtua esimerkiksi moduulin väärästä ohjelmaversiosta tai funktiota ei ole muusta syystä toteutettu kyseisessä moduulissa. 02 ILLEGAL DATA ADDRESS Kyselyssä pyydetyn rekisterin osoite ei sallittu. Tarkemmin sanoen rekisterin osoitteen ja rekisterien määrän yhdistelmä ei ole kelvollinen. Esimerkiksi jos moduulissa on 10 rekisteriä pyyntö lukea 4 rekisteriä rekisteristä 6 alkaen onnistuu, mutta pyyntö lukea 4 rekisteriä rekisteristä 7 alkaen tuottaa ILLEGAL DATA ADDRESS virheen. 03 ILLEGAL DATA VALUE Kyselyn data kentässä oleva data ei ole kelvollinen moduulille. Tämä osoittaa virhettä kyselyn rakenteessa, kuten esimerkiksi tavujen määrä ei täsmää ilmoitettuun arvoon. Tämä ei kuitenkaan tarkoita sitä, että varsinainen arvo ei ole soveltuva sijoitettavaksi rekisteriin, sillä MODBUS protokolla ei ole millään tavalla tietoinen rekistereihin soveltuvista arvoista.

39 Liite B, CRC:n laskenta esimerkki CRC:n laskenta esimerkki C-kielellä. unsigned int crc16 (unsigned char *data, unsigned char amount) { unsigned int CRC = 0xFFFF; unsigned char i = 0, j = 0; for (j=0; j< amount; j++) { CRC = CRC ^ data[j]; for (i=0; i < 8; i++) { if ((CRC & 0x0001)) { CRC = CRC >> 1; CRC = CRC ^ 0xA001; } else CRC = CRC >> 1; } } return CRC; }