Odczyt wartości kanałów

Previous  Next

 
dotyczy: GetChannelValue,ReadChannel, ReadIOBlock,GetDeviceChannelsValues, ReadDevice



Wartości kanałów z urządzeń zdefiniowanych w modułach akwizycji danych typu PLCModules, mogą być przekazywane poprzez zmapowane ze sobą kanały oraz mogą być odczytywane za pomocą funkcji przez moduły skryptowe.

Użycie funkcji ReadDevice, ReadIOBlock powoduje odczytanie danych z urządzenia i umieszczenie ich wartości w kanałach wyjściowych zdefiniowanych dla urządzenia.

Jeśli kanały takie są zmapowane do kanałów wejściowych innych modułów, to po wywołaniu z niezależnego modułu skryptowego tych funkcji zostanie do tych kanałów przekazana nowo odczytana wartość.


graphic

W powyższym przykładzie kanał ModbusMaster0.IPS-01.Read.Chn1_out został zmapowany do kanały wejściowego kontrolki Gauge0.
Jeśli w module skryptu nazwanego w przykładzie ReadChannels, wywołany funkcje ReadDevice lub ReadIOBlock odcztujące dane z urządzenie IPS-01, zdefiniowanego w kanale Chn1_out, to odczytana wartość zostanie wysłana do Gauge0.

  
Odczytana z urządzenia ostatnia wartość kanału jest zapamiętywana, i może zostać odczytana przez funkcję GetChannelValue lub GetDeviceChannelsValues.



Różnica pomiedzy funkcjami GetChannelValue a ReadChannel polega na tym, że wywołanie ReadChannel powoduje odczyt danych z urządzenia, natomiast GetChannelValue przekazuje ostatnio odczytaną wartość.
W związku z tym, wywołanie GetChannelValue natychmiast wraca, natomiast wywołanie ReadChannel może trwać nawet przez czas równy ustawieniu TimeOut na urządzeniu.

Aby odczytać wszystkie wartości z urządzenia można wywołać funkcję ReadDevice, która spowoduje odczytanie i ustawienie odczytanych wartości dla wszystkich kanałów zdefiniowanych dla danego urządzenia.
Po wykonaniu takiej funkcji, możemy bezpośrednio funkcją GetChannelValue odwoływać się do poszczególnych kanałów.

Funkcja GetDeviceChannelsValues zwraca listę kanałów wybranego urządzenia oraz ich wartości. Są to podobnie jak w przypadku funkcji GetChannelValue, ostatnio odczytane wartości.  Aby odczytać najświeższe należy wywołanie tej funkcji poprzedzić funkcją ReadDevice.

Ustawienie IOBlocków ExecutionMode na continous and callback powoduje, cykliczny odczyt wartości z urządzenia. Wtedy wywołując funkcję ReadDevice, lub GetDeviceValues zwracane są wartości odczytane podczas ostatniego, poprawnego cyklu akwizycji.