[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Forum moderator: Alexor  
Forum » Process Simulator » Russian » Binary.Logic (Binary.Logic)
Binary.Logic
AlexorDate: Wednesday, 28.05.2014, 11:09 | Message # 1
Major general
Group: Administrators
Messages: 311
Reputation: 1
Status: Offline
Binary.Logic
 
denzhigDate: Wednesday, 28.05.2014, 11:09 | Message # 2
Lieutenant
Group: Users
Messages: 46
Reputation: 0
Status: Offline
Вечер добрый.
Что-то не могу разобраться с последней версией:
1. создаю соединение с PLCSIM, в нём создаю байтовую переменную (item7).
2. в этой переменной у меня моргает один бит, хочу его выделить и вывести на панель, создаю внутреннюю булевую переменную flash_bit.
3. для этого создаю внутренний байт (bit_6), записываю в него 64 (нужно выделить 6-ой бит).
4. создаю сим.объект, бинарная логика: Input1=item7, Input2=bit_6, операция "AND", Value=flash_bit.
Вроде бы должно работать, но нет. В PLCSIM-е бит моргает, в item7 бит моргает, а в сим.объекте и переменной flash_bit - не моргает.
 
AlexorDate: Wednesday, 28.05.2014, 11:09 | Message # 3
Major general
Group: Administrators
Messages: 311
Reputation: 1
Status: Offline
Здравствуйте,

Дело в том, что объект Binary.Logic на входе принимает только bool. Если туда передать, например, byte, то он будет считать всё что >0 как true, а всё что =0 как false. Если у вас в item7 есть ещё биты которые true постоянно, то результат будет всегда true. Соответственно если (item7 > 0) AND (64 > 0)  будет всегда true.

Могу предложить два варианта решения:
1)    Считать бит из PLCSIM, а не byte.
2)    Использовать Script.CSharp с таким кодом:
'Internal.flash_bit' = ((byte)'PLCSIM.item7' & 64) > 0;
В настройках скрипта установите Trigger Time = 1, так будет быстрее.

Вообще я подумаю над вашим применением объекта Binary.Logic. Может имеет смысл его модифицировать, ну или сделать новый тип объекта … посмотрим.
 
denzhigDate: Wednesday, 28.05.2014, 11:09 | Message # 4
Lieutenant
Group: Users
Messages: 46
Reputation: 0
Status: Offline
собственно сделал так из-за соображений уменьшения объёма данных, читаемых из PLCSIM: вместо 8 переменных (как я понимаю каждая отдельно запрашивается) читается одна.
 
AlexorDate: Wednesday, 28.05.2014, 15:06 | Message # 5
Major general
Group: Administrators
Messages: 311
Reputation: 1
Status: Offline
Да, всё так и есть - каждая запрашивается отдельно.
...
В новой версии (2.0.5263) добавил чтений Q и запись I массивом.
 
Forum » Process Simulator » Russian » Binary.Logic (Binary.Logic)
  • Page 1 of 1
  • 1
Search: