przesyłanie danych do zewnętrznej bazy np MySql

Pytania i odpowiedzi dotyczące sprzętu Unitronics

Moderatorzy: Marek Sikora, Mateusz Sikorski

przesyłanie danych do zewnętrznej bazy np MySql

Postprzez _kosa_ » Cz, 4 paź 2012, 14:47

Witam,
Pracuje na V350

Sterownik odczytuje dane z maszyny.
Dane te cyklicznie chciałbym wysyłać do komputera z bazą danych MySql.
Jak to zrobić najbardziej optymalnie?

Proszę o pomoc w tej sprawie
_kosa_
 
Posty: 56
Dołączył(a): Pt, 27 lis 2009, 10:17

Re: przesyłanie danych do zewnętrznej bazy np MySql

Postprzez Adrian Surma » Cz, 4 paź 2012, 22:27

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.zip
Moż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
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: przesyłanie danych do zewnętrznej bazy np MySql

Postprzez shemeck » Pt, 5 paź 2012, 08:46

Dzień dobry,

W naszych aplikacjach często wykorzystujemy oprogramowanie Windev, chociaż w Polsce nie jest ono aż tak znane. Wykorzystujemy również sterowniki Unitronics i dzięki elastyczności środowiska Windev mamy możliwość budowania aplikacji zbierającej dane np. do bazy danych lub do plików. W swoich aplikacjach wykorzystujemy biblioteki dostarczone przez Unitronics. Samo oprogramowanie Windev może wykorzystywać własną, nieograniczoną i dla oprogramowań napisanych w wersji płatnej środowiska Windev (to zakupujemy tylko raz) bezpłatną bazę danych z możliwością wielokrotnej dystrybucji. Dla wersji bezpłatnej możemy korzystać tylko na użytek własny ale też bez ograniczeń. Oczywiście jeżeli ktoś jest bardziej przekonany o wykorzystaniu np. MySql to oprogramowanie Windev jest wyposażone w drivery do łączenia z bazą MySql jak również innymi bazami takimi jak Microsoft SQL Server czy Oracle.

Polecamy to oprogramowanie gdyż wyposażone jest w wiele narzędzi ułatwiających pracę (np. proste narzędzia raportujące) no i oczywiście nieograniczoną darmową bazę. Zapraszamy do pytań o więcej szczegółów. Najlepiej na tym forum :)
shemeck
 
Posty: 2
Dołączył(a): Pt, 5 paź 2012, 08:31


Powrót do Unitronics



Kto przegląda forum

Użytkownicy przeglądający to forum: Google [Bot] i 8 gości

cron