Scrivere i dati nello slave o leggere i dati dallo slave
Codici funzione disponibili (con esempi di programmazione)
SYS_MODBUS_03_READ_HOLDING_REGISTER
SYS_MODBUS_04_READ_INPUT_REGISTERS
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.
Ingresso
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
Numero della stazione dello slave (0–255).
Impostato su 1 se una SYS_ETHERNET_USER_CONNECTION_xx è applicata all'ingresso Port
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
Indirizzo iniziale (0–65535). Il tipo di indirizzo dipende dal comando specificato da FunctionCode*.
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
Indirizzo di origine sul master per il dato da scrivere nello slave.
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 … |
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.
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.
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.
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)
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).
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:
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).
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:
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.
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)
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.
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)
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
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:
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
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)
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).
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:
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.