Funzionamento PLC su schede DL485 Casi d'uso

CASI D'USO funzionalità schede DL485 (paragrafo in corso di definizione)

 esempio di alcuni casi d'uso che si possono soddisfare utilizzando le funzioni plc

 
Si definiscono un ingresso e un uscita digitale con la fuznione PLC associata "equal". Nell'esempio l'OUT2 con io_logic 1 è comandata dall'ingresso IO1 con io_logic 11 della board 4.
 
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 0, // stato dell'uscita all'avvio della scheda
"inverted": 1,
"time_refresh": 30,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal", // l'uscita è uguale allo stato dell'ingresso
"plc_linked_board_id_io_logic": ["4-11"], // l'ingresso che comanda l'uscita: board 4 e io_logic 11
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
},

"IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 100,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},
 
 
Si definiscono un ingresso e un uscita digitale con la funzione PLC associata "timer" e modalità timer  con innesco su fronte ON e spegnimento su fronte OFF . Nell'esempio l'OUT2 con io_logic 1 è comandata dall'ingresso IO1 con io_logic 11 della board 4.

"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_mode_timer": 131, // 10 = b10000011:  innesca timer su fronte ON e spegne su fronte OFF. Conteggio in secondi
"plc_timer_n_transitions": 2,
"plc_time_on": 10, // tempo timer di 10 secondi
"plc_time_off": 0,
"plc_linked_board_id_io_logic": ["4-11"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
},

"IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},

 
Si definiscono un ingresso e un uscita digitale con la funzione PLC associata "timer" e modalità timer con innesco su fronte ON e innesco su fronte OFF . Nell'esempio l'OUT2 con io_logic 1 è comandata dall'ingresso IO1 con io_logic 11 della board 4.
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_mode_timer": 128, // 10 = b10000000:  innesca timer su fronte ON e innesca timer su fronte OFF. Conteggio in secondi
"plc_timer_n_transitions": 2,
"plc_time_on": 10, // tempo timer di 10 secondi
"plc_time_off": 0,
"plc_linked_board_id_io_logic": ["4-11"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},
Viene utilizzata una uscita virtuale (OUT2) che da il consenso allo spegnimento una volta trascorso un tempo di 5 secondi dall'accensione di OUT1.
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 0,
"plc_delay_off_on": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-2"],
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
}, "OUT2":
{
"io_logic": 2,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 0,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 1000, // tempo in centesimi di secondo
"plc_delay_off_on": 0,
"plc_xor_input": 1, // inverte l'ingresso IO1
"plc_linked_board_id_io_logic": ["4-1"],
"name": "OUT2",
"description": "Uscita virtuale",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},
Viene utilizzata una uscita virtuale (OUT2) che da il consenso all'accensione insieme all'ingresso IO1 una volta trascorso un tempo di 10 secondi dallo spegnimento di OUT1.
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 0,
"plc_delay_off_on": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-2"],
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
}, "OUT2":
{
"io_logic": 2,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 0,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 0,
"plc_delay_off_on": 1000, // tempo in centesimi di secondo
"plc_xor_input": 1, // inverte l'ingresso IO1
"plc_linked_board_id_io_logic": ["4-1"],
"name": "OUT2",
"description": "Uscita virtuale",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},
 
Viene utilizzata una uscita virtuale (OUT2) che da il consenso all'accensione e allo spegnimento insieme all'ingresso IO1 garantendo un tempo minimo ON di 10 secondi e minimo OFF di 15 secondi
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 0,
"plc_delay_off_on": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-2"],
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
}, "OUT2":
{
"io_logic": 2,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 0,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "equal",
"plc_delay_on_off": 1500, // tempo in centesimi di secondo
"plc_delay_off_on": 1000, // tempo in centesimi di secondo
"plc_xor_input": 1, // inverte l'ingresso IO1
"plc_linked_board_id_io_logic": ["4-1"],
"name": "OUT2",
"description": "Uscita virtuale",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
},
 
Si definiscono 3 ingressi e un uscita digitale con la funzione "xor". Nell'esempio l'OUT2 con io_logic 1 è comandata dagli ingressi IO1, IO2 e IO3
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "xor",
"plc_linked_board_id_io_logic": ["4-11", "4-12", "4-13"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
}, "IO3":
{
"io_logic": 13,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO3",
"description": "Ingresso IO3",
"dtype": "Switch"
},
 
 
Si definiscono 3 ingressi e un uscita digitale con la funzione "toggle_off". Nell'esempio l'OUT2 con io_logic 1 è comandata dalgli ingressi IO1, IO2 e IO3. Viene usato la funzione "toggle_off" anzichè "toggle_on" perché gli ingressi sono impostati con "pullup" a 1.
 
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "toggle_off",
"plc_linked_board_id_io_logic": ["4-11", "4-12", "4-13"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
}, "IO3":
{
"io_logic": 13,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO3",
"description": "Ingresso IO3",
"dtype": "Switch"
},
 
 
Si definiscono 3 ingressi e un uscita digitale con la funzione PLC associata "timer" e modalità timer con innesco su fronte ON e misura dei tempi in secondi . Nell'esempio l'OUT2 con io_logic 1 è comandata dalgli ingressi IO1, IO2, IO3
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_mode_timer": 129, // Timer innescato su fronte ON e con impostazione del tempo in secondi
"plc_timer_n_transitions": 2,
"plc_time_on": 20, // 20 secondi per tempo a ON
"plc_time_off": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-12", "4-13"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
}, "IO3":
{
"io_logic": 13,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO3",
"description": "Ingresso IO3",
"dtype": "Switch"
},
 
Si definiscono 3 ingressi e un uscita digitale con la funzione PLC associata "timer" e modalità timer con innesco su fronte ON con reinizializzazione del timer su fronte ON e misura dei tempi in secondi . Nell'esempio l'OUT2 con io_logic 1 è comandata dalgli ingressi IO1, IO2, IO3
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_mode_timer": 145, // b'10010001' b7:1 timer in secondi, b4:1 reinizializzazione timer su fronte ON, b0:1 innesco su fronte ON
"plc_timer_n_transitions": 2,
"plc_time_on": 20, // tempo ON a 20 secondi
"plc_time_off": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-12", "4-13"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
}, "IO3":
{
"io_logic": 13,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO3",
"description": "Ingresso IO3",
"dtype": "Switch"
},
 
Si definiscono 3 ingressi e un uscita digitale con la funzione PLC associata "timer" e modalità timer con innesco su fronte ON con somma del timer ad ogni fronte ON e misura dei tempi in secondi . Nell'esempio l'OUT2 con io_logic 1 è comandata dalgli ingressi IO1, IO2, IO3
"OUT2":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 1,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_mode_timer": 161,  // 0b10100001  b5:1 somma il tempo timer al tempo residuo ogni volta che c'è un fronte ON
"plc_timer_n_transitions": 2,
"plc_time_on": 60,
"plc_time_off": 0,
"plc_linked_board_id_io_logic": ["4-11", "4-12", "4-13"],
"name": "OUT2",
"description": "RELE2",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
}, "IO3":
{
"io_logic": 13,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO3",
"description": "Ingresso IO3",
"dtype": "Switch"
},
 
 
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 0,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_timer_n_transitions": 2, // numero trasnsioni ON / OFF
"plc_mode_timer": 49, // innesca su fronte ON e spegne se timer innescato
"plc_xor_input": 3, // inverte l'ingresso IO1 così innesca su fronte OFF
"plc_time_on": 1000, // tempo MAX ON 10 secondi
"plc_time_off": 1,
"plc_linked_board_id_io_logic": ["4-11", "4-12"],
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
},
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 0,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_timer_n_transitions": 6, // 6 transizioni in totale ON/OFF di cui 3 ON da 10 secondi e 3 da 2 decimi di secondo
"plc_mode_timer": 1, // innesca su fronte ON
"plc_xor_input": 3, // inverte l'ingresso IO1 e IO2 così innesca su fronte OFF
"plc_time_on": 1000, // tempo ON di 10 secondi (1000 centesini di secondo)
"plc_time_off": 20, // tempo OFF di 2 decimi di secondo
"plc_linked_board_id_io_logic": ["4-11", "4-12"], // inverte lo stato degli ingressi
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
}, "IO1":
{
"io_logic": 11,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 200,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO1",
"description": "Ingresso IO1",
"dtype": "Switch"
}, "IO2":
{
"io_logic": 12,
"direction": "input",
"io_type": "digital",
"pullup": 1,
"filter": 20,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"name": "IO2",
"description": "Ingresso IO2",
"dtype": "Switch"
},
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 0,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "or", // funzione "or"
"plc_linked_board_id_io_logic": ["1-5"], // uscita comandata da ingresso remoto su board:1 - io_logic:5
"name": "OUT1",
"description": "LED SPIA",
"dtype": "Switch"
},
"OUT1":
{
"io_logic": 1,
"direction": "output",
"io_type": "digital",
"default_startup_value": 0,
"inverted": 1,
"filter": 127,
"time_refresh": 3000,
"n_refresh_on": 1,
"n_refresh_off": 1,
"enable": 1,
"plc_function": "timer",
"plc_timer_n_transitions": 0, // infinito
"plc_mode_timer": 6, // b110 uscita ferma sullo 0 con IO a 1 e partenza con 1 quando IO va a 0
"plc_time_on": 50, // tempo ON di 50 centesimi di secondo
"plc_time_off": 50, // tempo OFF di 50 centesimi di secondo
"plc_linked_board_id_io_logic": ["7-5"],  // IO da replicare lampeggiando
"name": "OUT1",
"description": "Lampadine",
"dtype": "Switch"
},
"TEMP_ATMEGA":
{
"io_logic": 8,
"direction": "input",
"io_type": "temp_atmega",
"time_refresh": 600,
"enable": 1,
"name": "TEMP_ATMEGA",
"description": "Temperatura Board Micro",
"dtype": "Temperature"
},

Stampa   Email