Omron fins udp

Da MontelLUG.
Versione del 15 set 2015 alle 20:17 di Stefano.fraccaro (Discussione | contributi) (Creata pagina con "== Protocollo FINS + Python3 == Gran parte dei plc prodotti da Omron supportano il protocollo FINS.<br>Ho visto in rete una [https://bitbucket.org/jryan/finsgit/downloads impl...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Protocollo FINS + Python3

Gran parte dei plc prodotti da Omron supportano il protocollo FINS.
Ho visto in rete una implementazione in Python di Joseph Ryan ma l'utilizzo mi sembrava un pò ostico: da quei sorgenti ho sviluppato una nuova versione a mio giudizio molto più fruibile e intuitiva. La licenza, come il sorgente di Joseph Ryan, è la General Public License.

Installazione

Il file è disponibile all'indirizzo http://www.stefanofraccaro.org/python/omron/fins_udp.py
E' sufficiente copiare il file nella stessa cartella dei vostri script python.

Uso

import fins_udp

plc = fins_udp.FinsConnection()
plc.connect('192.168.250.1')

# example of monitor bits/words
plc.monitor(1.0, 30, (fins_udp.D_WORD, 50, 2, fins_udp.INT),
                    (fins_udp.D_WORD, 60, 3, fins_udp.DINT),
                    (fins_udp.D_WORD, 70, 3, fins_udp.FLOAT),
                    (fins_udp.H_BIT, 0, 0, 32),
                    (fins_udp.W_BIT, 0, 0, 32)
                    )

# example of read/write bits
plc.write_bits(fins_udp.H_BIT, 0, 0, [0,0,1,1,0])
mem_area = plc.read_bits(fins_udp.H_BIT, 0, 0, 5)
print(str(mem_area))
    
# example of read/write words
plc.write_words(fins_udp.D_WORD, 0, [1,15,-18,16,985236], fins_udp.DINT)
mem_area = plc.read_words(fins_udp.D_WORD, 0, 5, fins_udp.DINT)
print(str(mem_area))

plc.close()