2015-12-09 18 views
1

Я программирования ПЛК АББ в среде CoDeSys, и я не могу понять, почему я получаю эту ошибку:Сдвиг операции возвращения странные ошибки

Error 4024: ... Expecting ELSIF, ELSE or END_IF before 'SHL' 

Код возвращения этой ошибки является то, например:

IF flag THEN 
    iState := 0; 
    Step := false; 
    SHL(1,iReg); 
END_IF 

В основном два назначения и операция сдвига влево по целому числу без знака. Сдвиг - это то, что дает ошибку, и комментирование строки устраняет ее.

Я проверил синтаксис много раз, также несколько раз инвертировал аргументы после противоречащей документации.

Может ли кто-нибудь сказать мне, что мне не хватает?

ответ

2

ваш SHL должен иметь в результате

IF flag THEN 
    iState := 0; 
    Step := false; 
    result := SHL(1,iReg); 
END_IF 
+0

О, спасибо, это теперь работает. Просто наблюдение ... Я получил входы смешанные: сначала переменную, которую нужно сдвинуть, затем количество позиций – clabacchio

+0

Да, функция SHL возвращает значение. Вы должны сообщить компилятору, где он идет. – tkezy

 Смежные вопросы

  • Нет связанных вопросов^_^