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

   #1
 740     0
Det du sender og det mottar er nok ganske kryptisk ja. Har ikke kommet så langt enda selv, men du må bygge opp en melding hvor du angir hva du skal gjøre og til hvilken adresse. Så får du respons tilbake.

Kommandoen er HEX bassert.

I manualen appendix B står det noe og la med en memory mapping oversikt i Excel fil.

  (trådstarter)
   #2
 45     Fredrikstad     0
Humm, prøver men får det ikke helt til.
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
  (trådstarter)
   #3
 45     Fredrikstad     0
Skjønner ikke hvordan jeg skal lese denne manualen for vite hva jeg skal sette i config under mblogic
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
  (trådstarter)
   #4
 45     Fredrikstad     0
Tja,

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