Witam
Nie ma gotowych rozwiązań do synchronizacji z bazą MYSQL. Producent udostępnia takiego rodzaju narzędzia jak UniDDE Server pozwalający na generowanie makr potrafiących pobierać wartości np. Memory Integer-ów do arkusza EXCEL-a. Można z tego skorzystać i korzystając z Visual Basica dopisać kod, który będzie synchronizował to z bazą MYSQL. Unitronics udostępnia bibliotekę .NET pozwalającą dostać się do rejestrów sterownika:
http://unitronics.com/Data/Uploads/soft ... 0.0.47.zipMożna również skorzystać z innych przyjemniejszych narzędzi programistycznych jak np. WINDEV:
http://windev.pl/Posiada własną bazę danych jak i możliwość synchronizacji z MYSQL.
Przykład kodu pobierającego 500 wartości Memory Integer ze sterownika (połączenie komputera ze sterownikiem poprzez Ethernet) i wyświetlenie w postaci tabeli:
naszObiektPolaczeniaEthernetowego is Ethernet dynamic
naszObiektPolaczeniaEthernetowego = new Ethernet("192.168.1.233", 20256, EthProtocol.TCP, 3, 3000)
naszObiektPlc is PLC dynamic
naszObiektPlc = PLCFactory.GetPLC(naszObiektPolaczeniaEthernetowego,1)
naszObiektWersjaSterownika is PlcVersion dynamic
naszObiektWersjaSterownika= naszObiektPlc.Version
Info("Polaczenie z: "+naszObiektWersjaSterownika.OPLCModel)
naszaTablicaReadWriteReq is array of 1 ReadWriteRequest dynamic
wartosciZtabeliJakoString is array of strings
PojedynczyRekordZtabeli is dynamic "Object"
IleRzedowMaTabela is int =500
AdresPoczatkowyRzeduWtabeli is int =0
naszaTablicaReadWriteReq[1] = new ReadOperands(IleRzedowMaTabela,OperandTypes.MI,AdresPoczatkowyRzeduWtabeli)
naszObiektPlc.ReadWrite(naszaTablicaReadWriteReq)
wartosciZtabeliJakoString=naszaTablicaReadWriteReq[1].get_ResponseValues()
FOR i=1 TO wartosciZtabeliJakoString..Occurrence
PojedynczyRekordZtabeli=wartosciZtabeliJakoString[i]
TableAddLine(TABLE_Wartosci,i+AdresPoczatkowyRzeduWtabeli-1,PojedynczyRekordZtabeli.ToString())
END