Differenze tra le versioni di "Omron fins udp"
Da MontelLUG WIKI.
(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...") |
(→Uso) |
||
Riga 14: | Riga 14: | ||
# example of monitor bits/words | # example of monitor bits/words | ||
− | plc.monitor(1.0, 30, (fins_udp. | + | plc.monitor(1.0, 30, (fins_udp.MEM_D_WORD, 50, 2, fins_udp.INT), |
− | (fins_udp. | + | (fins_udp.MEM_D_WORD, 60, 3, fins_udp.DINT), |
− | (fins_udp. | + | (fins_udp.MEM_D_WORD, 70, 3, fins_udp.FLOAT), |
− | (fins_udp. | + | (fins_udp.MEM_H_BIT, 0, 0, 32), |
− | (fins_udp. | + | (fins_udp.MEM_W_BIT, 0, 0, 32) |
) | ) | ||
# example of read/write bits | # example of read/write bits | ||
− | plc.write_bits(fins_udp. | + | plc.write_bits(fins_udp.MEM_H_BIT, 0, 0, [0,0,1,1,0]) |
− | mem_area = plc.read_bits(fins_udp. | + | mem_area = plc.read_bits(fins_udp.MEM_H_BIT, 0, 0, 5) |
print(str(mem_area)) | print(str(mem_area)) | ||
# example of read/write words | # example of read/write words | ||
− | plc.write_words(fins_udp. | + | plc.write_words(fins_udp.MEM_D_WORD, 0, [1,15,-18,16,985236], fins_udp.DINT) |
− | mem_area = plc.read_words(fins_udp. | + | mem_area = plc.read_words(fins_udp.MEM_D_WORD, 0, 5, fins_udp.DINT) |
print(str(mem_area)) | print(str(mem_area)) | ||
Versione attuale delle 12:22, 16 set 2015
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.MEM_D_WORD, 50, 2, fins_udp.INT), (fins_udp.MEM_D_WORD, 60, 3, fins_udp.DINT), (fins_udp.MEM_D_WORD, 70, 3, fins_udp.FLOAT), (fins_udp.MEM_H_BIT, 0, 0, 32), (fins_udp.MEM_W_BIT, 0, 0, 32) ) # example of read/write bits plc.write_bits(fins_udp.MEM_H_BIT, 0, 0, [0,0,1,1,0]) mem_area = plc.read_bits(fins_udp.MEM_H_BIT, 0, 0, 5) print(str(mem_area)) # example of read/write words plc.write_words(fins_udp.MEM_D_WORD, 0, [1,15,-18,16,985236], fins_udp.DINT) mem_area = plc.read_words(fins_udp.MEM_D_WORD, 0, 5, fins_udp.DINT) print(str(mem_area)) plc.close()