3,719
4
0
Smarthouse fra carlo gavazzi. Modbus til MBLogic
45
Fredrikstad
0
Hei.
Jeg lurer på om noen andre har prøvd og fåtil modbus signaler fra masteren til carlo gavazzi.
Planen var og sende modbus signaler fra masteren og til pc en som kjører MBLogic.
http://mblogic.sourceforge.net/ Dette er et programerbart topsystem. Men jeg skjønner ikke hvordan jeg skal hente ut modbus signalene. Jeg har den gammle typen master "Mastergenerator type Z"
Noen som har noe tips?
Tenkte først jeg kunne prøve og sende/motta en streng fra masteren til datamaskinen (linux)
eks echo "kode" > /dev/USB0 men jeg skjønner ikke hva koden skal være.
Jeg fant info om memorymapping her
www.smartbuilding.dk/smarthouse/download/.../bh8_ctrlzx_man.pdf
romdevices.com/pdf/DUPLINE/GTI50.pdf
Men lurer på om noen forstår hva som står der....
Espen
Jeg lurer på om noen andre har prøvd og fåtil modbus signaler fra masteren til carlo gavazzi.
Planen var og sende modbus signaler fra masteren og til pc en som kjører MBLogic.
http://mblogic.sourceforge.net/ Dette er et programerbart topsystem. Men jeg skjønner ikke hvordan jeg skal hente ut modbus signalene. Jeg har den gammle typen master "Mastergenerator type Z"
Noen som har noe tips?
Tenkte først jeg kunne prøve og sende/motta en streng fra masteren til datamaskinen (linux)
eks echo "kode" > /dev/USB0 men jeg skjønner ikke hva koden skal være.
Jeg fant info om memorymapping her
www.smartbuilding.dk/smarthouse/download/.../bh8_ctrlzx_man.pdf
romdevices.com/pdf/DUPLINE/GTI50.pdf
Men lurer på om noen forstår hva som står der....
Espen
Kommandoen er HEX bassert.
I manualen appendix B står det noe og la med en memory mapping oversikt i Excel fil.
Master Module G34960005 Dupline Mapping.xls
Prøver med dette
echo -ne "\x01\x01\x00\x00\x01\x01\xZZ\xZZ" > /dev/ttyUSB0
Masteren har id 1 |
Prøver for eksempel og lese hva A1 er.
Eller sette A1 til 1 eller 0. Kan du gi meg et eksempel på hva hex coden blir da?
Prøvd med "strace tail -f /dev/ttyUSB0"
Da får jeg dette
nanosleep({1, 0}, NULL) = 0
read(3, "", 8192) = 0
Espen
www.smartbuilding.dk/smarthouse/download/.../bh8_ctrlzx_man.pdf
Dette er configurasjons instillingene:
Data Table Read:
Data Table Read Addresses:
Coil:________ Length:________ Discrete input:________ Length:________
Holding Register:________ Length:________ Input Register:________ Length:________
Data Table Write:
Data Table Write Addresses:
Coil:________ Length:________ Discrete input:________ Length:________
Holding Register:________ Length:________ Input Register:________ Length:________
Client Params:
Fault Addresses:
Coil:________ Discrete Input:________ Holding Reg:________ Input Reg:________
Reset Coil: ________
Jeg har fått sendt melding til masteren via consolen
echo -e "\x01\x05\x30\x0B\x00\x01\x72\xC8" > /dev/ttyUSB1
Den setter da B4 på eller av. coil 300B (Dupline B4)
Husk og sett hastigheten på comporten
stty -F /dev/ttyUSB1 115200
Setter usbcomport 2 til 57600
stty -F /dev/ttyUSB0 19200
Setter comport 1 til 19200
Com1 på masteren alltid 115200 baud, 8 Data, No parity, 1 stop.
Com2 på masteren stiller man hastighet selv. eks 19200
Testa 485 også, den funka også.
Er det slik configen skal settes etter manualen?
Data Table Read:
Data Table Read Addresses:
Coil:1280____ Length:127_____ Discrete input:1536_____ Length:127____
Holding Register:0________ Length:8_______ Input Register:16______ Length:11______
I manualen står det at coil begynner på 1280 og går til 1407. 127 forskjellige signaler
Discrete Inputs 1536 til 1663. 127 forskjellige signaler.
Multiple Registers 0 til 7. 8 forskjellige signaler.
Input Registers 16 til 27. 11 forskjellige signaler.
Blir dette riktig?
Espen
lekt litt mere med modbuss....
Har installert et program som heter modpoll, det finnes i både win og linux.
Jeg har også lånt med meg en moxa. digitale innganger og utganger fra jobben. Denne prater med modbus tcp.
http://www.google.no/url?sa=t&source=web&cd=1&ved=0CBsQFjAA&url=http%3A%2F%2Fwww.moxa-jp.com%2Fproduct%2Fdownload%2FioLogik_E1200_Series_Users_Manual_v1.pdf&rct=j&q=ioLogik%20E1200%20Series%20User%27s%20Manual%20v1&ei=AF2TTpq0M8rpOZuagMwN&usg=AFQjCNHVrWmrHlRNs8Fzcvh4Q67LYdsOcg&cad=rja
Så da fikk jeg litt komunikasjon....
caesar@klem:~/modpoll$ ./modpoll -m tcp -t 1 -r 1 -c 8 -1 192.168.0.3
modpoll 3.1 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2011 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: MODBUS/TCP
Slave configuration...: address = 1, start reference = 1, count = 8
Communication.........: 192.168.0.3, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: discrete input
-- Polling slave...
[1]: 0
[2]: 0
[3]: 0
[4]: 0
[5]: 0
[6]: 0
[7]: 0
[8]: 0
caesar@klem:~/modpoll$
Jeg monterte 2 reler til digital inngang 1 og 2. og får nå signalet inn når jeg relene slår.
caesar@klem:~/modpoll$ ./modpoll -m tcp -t 1 -r 1 -c 8 -1 192.168.0.3
modpoll 3.1 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2011 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: MODBUS/TCP
Slave configuration...: address = 1, start reference = 1, count = 8
Communication.........: 192.168.0.3, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: discrete input
-- Polling slave...
[1]: 1
[2]: 1
[3]: 0
[4]: 0
[5]: 0
[6]: 0
[7]: 0
[8]: 0
Jeg har også satt det opp i mblogic
cat mbclient.config
[Moxa]
repeattime = 250
fault_coil = 289
protocol = modbustcp
cmdtime = 250
fault_holdingreg = 289
fault_inp = 289
port = 502
action = poll
host = 192.168.0.3
# DO Value
&test1 = function=1, uid=1, memaddr=10, qty=1, remoteaddr=1
# DO Pulse Status
&test2 = function=2, uid=1, memaddr=20, qty=8, remoteaddr=1
# DO Value All Channel (Ch0-Ch7)
&test3 = function=2, uid=1, memaddr=30, qty=8, remoteaddr=1
# DI Value
&test4 = function=2, uid=1, memaddr=40, qty=8, remoteaddr=1
# DI Counter Value Double Word
&test5 = function=2, uid=1, memaddr=50, qty=8, remoteaddr=1
# DI Value All Channel (Ch0-Ch15)
&test6 = function=2, uid=1, memaddr=60, qty=8, remoteaddr=1
# DI Counter Start/Stop
# &test7 = function=2, uid=1, memaddr=70, qty=8, remoteaddr=1
# DI Counter Clear
# &test8 = function=2, uid=1, memaddr=80, qty=8, remoteaddr=1
retrytime = 5000
type = tcpclient
fault_inpreg = 289
fault_reset = 65287
Oppsettet her er jeg ikke helt sikker på, men jeg får ingen feilmeldinger. Så det ser ut til og funke.
Men jeg har ikke funnet ut hvordan jeg henter infoen videre i programmet....
Så har noen noe tips er det bare og skrike ut;)
Espen