FP_MODBUS_MASTER

Scrivere i dati nello slave o leggere i dati dallo slave

Utilizzate questa istruzione per scrivere i dati da un master in uno slave o per leggere i dati da uno slave tramite la porta di comunicazione che utilizza il protocollo Modbus RTU, come definito nei registri di sistema della porta utilizzata. Assicuratevi di impostare lo stesso protocollo per master e slave.

Parametri

Ingresso

Port (WORD, INT, UINT)

Specifica le porte di comunicazione (in base al tipo di PLC):

  • Porta COM p.es. SYS_COM0_PORT

  • Porta Ethernet p.es. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU p.es. 16#xx01 (xx = numero slot) in COM01

SlaveAddress (WORD, INT, UINT)

Numero della stazione dello slave

  • Solo per FP7:

    • Codici funzione 05, 06, 15, 16: 0–247

      Se si utilizza la SCU e viene specificato "0" per il numero di unità slave, viene eseguito un trasferimento globale. In questo caso non ci sono messaggi di risposta dall'unità slave.

    • Codici funzione 01, 02, 03, 04: 1-247

  • Per gli altri PLC:

    • Codici funzione 05, 06, 15, 16: 0–99

      Se viene specificato "0" per il numero di unità slave, viene eseguito un trasferimento globale. In questo caso non ci sono messaggi di risposta dall'unità slave.

    • Codici funzione 01, 02, 03, 04: 1-99

Impostato su 1 se una SYS_ETHERNET_USER_CONNECTION_xx è applicata all'ingresso Port

FunctionCode* (WORD, INT, UINT)

SYS_MODBUS_01_READ_COIL

SYS_MODBUS_02_READ_INPUT

SYS_MODBUS_03_READ_HOLDING_REGISTER

SYS_MODBUS_04_READ_INPUT_REGISTERS

SYS_MODBUS_05_FORCE_COIL

SYS_MODBUS_06_PRESET_REGISTER

SYS_MODBUS_15_FORCE_COILS

SYS_MODBUS_16_PRESET_REGISTERS

StartRegister (WORD, INT, UINT)

Indirizzo iniziale (0–65535). Il tipo di indirizzo dipende dal comando specificato da FunctionCode*.

NumberOfRegisters* (WORD, INT, UINT)

Numero di bit o word di trasmissione.

  • 1 per codici funzione 05, 06

  • 1–2040 per i codici funzione 01, 02

  • 2–2040 per il codice funzione 15

  • 1–127 per i codici funzione 03, 04

  • 2–127 per il codice funzione 16

MasterData (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Indirizzo di origine sul master per il dato da scrivere nello slave.

Uscita

Result (WORD, INT, UINT)

Solo per FP7: Per una descrizione di tutti i codici di errore, fare riferimento alla tabella dei codici di errore di comunicazione Modbus/MEWTOCOL.

Per gli altri PLC: impostato su 0

Diagramma tempi

  1.  (1) Flag di cancellazione-invio della comunicazione master, p.es. sys_bIsEthernetUserConnection1MasterCommunication
  2.  (2) Verificare che il flag di cancellazione-invio della comunicazione master sia TRUE e verificare che il flag di invio della comunicazione master sia FALSE
  3.  (3) Flag di invio della comunicazione master, p.es. sys_bIsEthernetUserConnection1MasterCommunicationActive

    Durante l'invio: Flag di invio della comunicazione master è TRUE

    Invio effettuato: Flag di invio della comunicazione master è FALSE

  4.  (4) Eseguire questa istruzione
  5.  (5) Flag di invio concluso della comunicazione master, p.es. sys_bIsEthernetUserConnection1CommunicationError

    Completamento normale: FALSE

    Completamento anomalo: TRUE

  6.  (6) Invio di dati
  7.  (7) Elaborazione della risposta ricevuta

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se i dati slave o master eccedono l'intervallo di indirizzi disponibili.
  • se la modalità di comunicazione non è impostata su MEWTOCOL-COM Master/Slave o su Modbus RTU Master/Slave.
  • se la porta COM selezionata richiede un cassetto di comunicazione che non è stato installato.
sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se i dati slave o master eccedono l'intervallo di indirizzi disponibili.
  • se la modalità di comunicazione non è impostata su MEWTOCOL-COM Master/Slave o su Modbus RTU Master/Slave.
  • se la porta COM selezionata richiede un cassetto di comunicazione che non è stato installato.

Esempio

SYS_MODBUS_01_READ_COIL

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso speciale in cui lo slave collegato sia un PLC Panasonic configurato come Modbus RTU slave tramite registro di sistema, uno o più bit vengono letti da:

  • Y (Uscita)

  • R (Relè interni)

Esempio

Esecuzione del comando Modbus 01: legge 1 bit da uno slave Modbus a partire dal registro iniziale 56 impostato tramite la variabile StartRegister. Il comando memorizza quindi il 1 bit nel master a partire dall'indirizzo impostato tramite la variabile bBool2. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 56 corrisponde all'uscita Y38 (3*16+8=56).

SYS_MODBUS_02_READ_INPUT

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso speciale in cui lo slave collegato sia un PLC Panasonic configurato come Modbus RTU slave tramite registro di sistema, uno o più bit vengono letti da:

  • X (Ingresso)

Esempio

Esecuzione del comando Modbus 02: legge 1 bit da uno slave Modbus a partire dal registro iniziale 66 impostato tramite la variabile StartRegister. Il comando memorizza quindi il 1 bit nel master a partire dall'indirizzo impostato tramite la variabile bBool2. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 66 corrisponde all'ingresso X42 (4*16+2=66).

SYS_MODBUS_03_READ_HOLDING_REGISTER

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso speciale in cui lo slave collegato sia un PLC Panasonic configurato come Modbus RTU slave tramite registro di sistema, uno o più bit vengono letti da:

  • DT (registri dati)

Esempio

Esecuzione del comando Modbus 03: legge 2 word da uno slave Modbus a partire dal registro iniziale 100 impostato tramite la variabile StartRegister. Il comando memorizza quindi le 2 word nel master Modbus 2 a partire dall'indirizzo impostato tramite la variabile rCount2. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 100 corrisponde al registro dati DT100.

Numero massimo di registri: 127.

SYS_MODBUS_04_READ_INPUT_REGISTERS

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso speciale in cui lo slave collegato sia un PLC Panasonic configurato come Modbus RTU slave tramite registro di sistema, uno o più bit vengono letti da:

  • WL0–WL127 (Flag di link)

  • LD0–LD256 (Registro di link)

Esempio

Esecuzione del comando Modbus 04: legge 7 word da uno slave Modbus a partire dal registro iniziale 2018 impostato tramite la variabile StartRegister. Il comando memorizza quindi le 7 word nel master a partire dall'LD25 impostato tramite la variabile MasterData. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 2018 corrisponde al registro di link LD18.

Numero massimo di registri: 127.

SYS_MODBUS_05_FORCE_COIL

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso in cui lo slave collegato sia un PLC Panasonic in modalità Modbus RTU, uno o più bit vengono scritti in:

  • Y (Uscita)

  • R (Relè interni)

Esempio

Esecuzione del comando Modbus 05: scrive 1 bit in uno slave Modbus a partire dall'indirizzo WY1 impostato tramite la variabile MasterData. Il comando memorizza quindi il 1 bit in uno slave Modbus a partire dal registro iniziale 35 impostato tramite la variabile StartRegister. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, l'indirizzo 35 corrisponde all'uscita Y23 (2*16+3=35).

Per la scrittura di più dati bit utilizzate la costante SYS_MODBUS_15_FORCE_COILS

Numero massimo di registri: 1

SYS_MODBUS_06_PRESET_REGISTER

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso in cui lo slave collegato sia un PLC Panasonic in modalità Modbus RTU, uno o più bit vengono scritti in:

  • DT (registri dati)

Esempio

Esecuzione del comando Modbus 06: scriver 1 word in uno slave Modbus a partire dall'indirizzo DT14 impostato tramite la variabile MasterData. Il comando memorizza quindi la 1 word nello slave Modbus a partire dal registro iniziale 21 impostato tramite la variabile StartRegister. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 21 corrisponde al registro dati DT21.

Per la scrittura di più dati bit utilizzate la costante SYS_MODBUS_15_FORCE_COILS

Numero massimo di registri: 1

SYS_MODBUS_15_FORCE_COILS

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso in cui lo slave collegato sia un PLC Panasonic in modalità Modbus RTU, uno o più bit vengono scritti in:

  • Y (Uscita)

  • R (Relè interni)

Esempio

Esecuzione del comando Modbus 15: scrive 64 bit in uno slave Modbus a partire dall'indirizzo WY1 impostato tramite la variabile MasterData. Il comando memorizza quindi i 64 bit nello slave Modbus a partire dal registro iniziale 48 impostato tramite la variabile StartRegister. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, l'indirizzo 48 corrisponde all'uscita Y30 (3*16=48).

SYS_MODBUS_16_PRESET_REGISTERS

Quando applicate questa costante al parametro di ingresso FunctionCode*, il comando Modbus corrispondente viene eseguito.

Nel caso in cui lo slave collegato sia un PLC Panasonic in modalità Modbus RTU, uno o più bit vengono scritti in:

  • DT (registri dati)

Esempio

Esecuzione del comando Modbus 16: scrive i dati in uno slave Modbus a partire dall'indirizzo impostato tramite la variabile rCount1. Il comando memorizza quindi i dati nello slave Modbus 2 a partire dal registro iniziale 100 impostato tramite la variabile StartRegister. L'indirizzo dello slave viene convertito in un indirizzo specifico del dispositivo in base alle specifiche Modbus del dispositivo stesso.

Se lo slave collegato è un PLC Panasonic, il registro iniziale 100 corrisponde al registro dati DT100.

Numero massimo di registri: 127.

L'ultima revisione: 2024-12-18Feedback su questa paginaPanasonic hotline