PDA

Просмотр полной версии : Работа с дискретными переменными



приборист
21.11.2013, 14:42
Добрый день.
Возникла необходимость работы с дискретными переменными.
Раньше работали с ОвенOPC теперь приходится перейти на MasterOPC
Прочитав некоторые темы пришел к такому выводу:

В кодесисе создаем к примеру 4 переменных по 8 бит (с 0 адреса)
В MasterOPC создаем переменную Float, которая читает все 32 бита.
В Скаде используем распаковку 32битного значения.

32 бита займут 2 регистра (0 и 1)
Следующие 4 переменных по 8 бит начнутся с адреса 2 (В MasterOPC)
Верно?

В связи с тем, что оборудование не на руках - проверить не могу.

P.S.
Возможно ли как то менять названия выходов в ФБ распаковка 32 битного значения? Ну и упаковка соответственно.

SCADAMaster
21.11.2013, 15:10
В кодесисе создаем к примеру 4 переменных по 8 бит (с 0 адреса)

Поступите проще - создайте в Codesys переменную "4 Byte" - DWORD. В ОРС она будет иметь тип Uint 32 (чередование байт - старшим словом вперед).
Чтобы задать конкретный бит слова в Codesys используйте операцию:
My_Perem.0:=true;
My_Perem.1:=true;
и т.д.



Следующие 4 переменных по 8 бит начнутся с адреса 2 (В MasterOPC)
Верно?

Да. 4 байта - 2 Modbus регистра.



Возможно ли как то менять названия выходов в ФБ распаковка 32 битного значения? Ну и упаковка соответственно.
Нет, названия выходов менять нельзя.

melky
21.11.2013, 15:19
Почему невозможно ?

Пуск := Переменная.0
Переменная.0 := Пуск

SCADAMaster
21.11.2013, 16:00
Это вы про что?

приборист
22.11.2013, 09:51
Поступите проще - создайте в Codesys переменную "4 Byte" - DWORD. В ОРС она будет иметь тип Uint 32 (чередование байт - старшим словом вперед).
Чтобы задать конкретный бит слова в Codesys используйте операцию:
My_Perem.0:=true;
My_Perem.1:=true;
и т.д.


Спасибо, так действительно проще.

melky
22.11.2013, 09:59
SCADAMaster Про то, что битовым операндам слова можно дать имена в CodeSys и пользоваться в самой программе уже не My_Perem.0:=true
а более привычными словами и определениями.
Вначале программы считывать и присваивать переменным значения из битов слова.
В конце программы переменные присваивать битам слова.

Начало программы
считать из Modbus My_Perem
Pusk:=My_Perem.0;
Stop:=My_Perem.1;

Обработка в программе Pusk, Stop и т.д.

My_Perem.0:=Pusk
My_Perem.1:=Stop

My_Perem - отправить в Modbus

конец программы

приборист
27.11.2013, 07:34
melky,
Я спрашивал про переименование входов\выходов в ФБ упаковка\распаковка 32 битного значения в MasterScada.