F145F146_MODBUS_MASTER

Scrivere i dati nello slave o leggere i dati dallo slave

Codici funzione disponibili (con esempi di programmazione)

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

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 (0–255).

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–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.

Note

  • Anziché utilizzare questa istruzione F, si consiglia di utilizzare l'istruzione FP7 corrispondente: FP_MODBUS_MASTER

  • Contrariamente ad altre istruzioni F145 o F146, il comando Modbus necessario può essere impostato direttamente tramite il parametro FunctionCode*.

  • Le istruzioni F145 o F146 possono essere eseguite solo se né l'una né l'altra istruzione è attiva. Valutate il flag "F145/F146 non attiva" nel programma per controllare lo stato delle istruzioni.

  • L'istruzione F145 richiede unicamente l'invio dei dati allo slave. L'effettiva elaborazione avviene al termine della scansione.

  • Valutate il flag "Errore F145/F146" per verificare se la trasmissione si è conclusa correttamente o con un errore.

  • Durante il broadcast (SlaveAddress impostato su 0), assicuratevi che la trasmissione venga eseguita solo al termine del tempo massimo di scansione.

  • Le istruzioni F145 o F146 non possono essere eseguite se l'indirizzo di destinazione è un flag interno speciale (da R9000), un registro dati speciale (da DT9000/DT90000) o un registro file FL.

  • Comandi supportati dal master:

    Codice funzione

    Costante di sistema

    Registro iniziale

    Numero di registri

    Numeri di riferimento (in base allo slave Modbus)

    01

    SYS_MODBUS_01_ READ_COIL

    0–65535

    1–2040

    000001–065536

    02

    SYS_MODBUS_02_ READ_INPUT

    0–65535

    1–2040

    100001–165536

    03

    SYS_MODBUS_03_ READ_HOLDING_ REGISTER

    0–65535

    1–127

    400001–465536

    04

    SYS_MODBUS_04_ READ_INPUT_ REGISTERS

    0–65535

    1–127

    300001–365536

    5

    SYS_MODBUS_05_ FORCE_COIL

    0–65535

    1

    000001–065536

    6

    SYS_MODBUS_06_ PRESET_REGISTER

    0–65535

    1

    400001–465536

    15

    SYS_MODBUS_15_ FORCE_COILS

    0–65535

    2–2040

    000001–065536

    16

    SYS_MODBUS_16_ PRESET_REGISTERS

    0–65535

    2–127

    400001–465536

  • Specifiche Modbus per i PLC Panasonic:

    Indirizzo area Modbus

    Nome memoria Modbus

    Tipo memoria

    Indirizzo PLC Panasonic

    000001 …

    COIL

    1 bit

    Y0 …

    002049 …

    R0 …

    100001 …

    INPUT

    1 bit

    X0 …

    400001 …

    HOLDING_REGISTER

    16 bit

    DT0 …

    300001 …

    INPUT_REGISTERS

    16 bit

    WL0 …

    302001 …

    LD0 …

Tip

Per gli intervalli dei numeri di riferimento e delle aree indirizzi supportati dai PLC Panasonic vedere il manuale utente del PLC. Se il numero di riferimento non rientra nell'intervallo supportato, viene restituito un errore.

FP-X0, Multi-Communication Unit: Please refer to the corresponding manual that you can find in the download center in the Internet.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • 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 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 DDT100.

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 DDT100.

Numero massimo di registri: 127.

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