PDA

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



Juan Esteban
24.03.2021, 15:02
Всем привет! Продолжаю марафон тупых моих тупых вопросов :) Внезапно обнаружил, что переменная типа WORD не хочет корректно сравниваться с целочисленной константой на равенство (EQ): то есть, например, если my_var = 0, при проверке на равенство с 0 выдает результат FALSE, если не провести явное преобразование my_var WORD_TO_INT или преобразование константы 0 INT_TO_WORD.

Меня немного обескуражило такое поведение, поэтому хочу спросить: в каких случаях надо делать преобразование типов перед сравнением с константами (для каких типов), чтобы понимать масштаб того, сколько надо переделать для корректной работы проекта.

capzap
24.03.2021, 15:14
Всем привет! Продолжаю марафон тупых моих тупых вопросов
так может и будете писать в одной теме, зачем на каждый пук тему создавать


54189

Juan Esteban
24.03.2021, 15:18
Тема-то другая. Ладно, буду впредь писать свои вопросы здесь, все равно тему я уже не удалю.

Здорово, что у вас работает. Вопрос, почему у меня не работает. Под константами я имел в виду не именованные константы, а просто вход блока с прописанной цифрой 0, например. Переменная - OPC-переменная типа WORD. Возможно, это дела не меняет, но я не понимаю, почему у меня с этим возникла проблема.

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

capzap
24.03.2021, 15:38
так скринами покажите неработающий код, скорее всего окажется что дело не в КДС, а какая нибудь поговорка об альтернативно-одаренных

Juan Esteban
24.03.2021, 15:50
Все заработало, раньше не додумался заскринить.


скорее всего окажется что дело не в КДС, а какая нибудь поговорка об альтернативно-одаренных

Спасибо за доброту.

Зинько Владислав
25.03.2021, 11:38
Добрый день.

При использовании языка CFC обращайте внимание на последовательность выполнения блоков (в верхнем правом углу блока).
Ваша ситуация похожа на то, что у в переменную-результат EQ значение записывалось раньше, чем происходило само сравнение.

На всякий случай, перед загрузкой проекта в ПЛК на холсте с кодом сделайте "ПКМ-> Порядок выполнения -> Согласно потоку данных".

Juan Esteban
27.03.2021, 12:28
Порядок выполнения я всегда проверяю.