Страница 14 из 36 ПерваяПервая ... 4121314151624 ... ПоследняяПоследняя
Показано с 131 по 140 из 365

Тема: CoDeSys v2.3

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    как правильно сравнить массив?
    имеем массив из нескольких word, значения меняются. делаю сравнение
    if array = 1, 2, 3 then
    на эту строку кдс выдает ошибку "несоответствие операнда.. невозможно преобразовать..."
    изменяя на
    if array[] = 1, 2, 3 then
    получаем "необходимо выражение". вроде как в скобки просит номер элемента. но надо сравнивать весь массив.
    у меня массив из 22 элементов и много сравнений, хочется покороче это дело описать

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,590

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    как правильно сравнить массив?
    имеем массив из нескольких word, значения меняются. делаю сравнение
    if array = 1, 2, 3 then
    на эту строку кдс выдает ошибку "несоответствие операнда.. невозможно преобразовать..."
    изменяя на
    if array[] = 1, 2, 3 then
    получаем "необходимо выражение". вроде как в скобки просит номер элемента. но надо сравнивать весь массив.
    у меня массив из 22 элементов и много сравнений, хочется покороче это дело описать
    покороче, тогда наверное только через SysMemCmp

  3. #3
    Пользователь
    Регистрация
    13.05.2009
    Адрес
    Томск
    Сообщений
    1

    По умолчанию

    Можно обращаться только к элементу массива. Используйте цикл.

    FOR Index:= 1 TO 22 DO
    IF array[Index]=1 THEN..

    END_IF;
    END_FOR;

  4. #4

    По умолчанию

    спасибо за ответы
    цикл for пожалуй подойдет, только если вместе с оператором mux

  5. #5

    По умолчанию

    Здравствуйте. Пытаюсь наладить работу с ПЛК через сокет. Проблема в следующем: с ПС открываю порт и отправляю посылку. Первая посылка проходит, в регистр ПЛК падает нужное значение, порт на ПС закрывается, ПЛК выполняет действие. При попытке повторно отправить посылку, возникает ошибка "подключение не установлено т.к. конечный комп. отверг запрос на подключение". И так продолжается неопределенное время. Случается, что вдруг все начинает работать непродолжительное время и потом опять ошибка.
    Подскажите могут ли быть какие-то нюансы со стороны работы ПЛК или искать проблему в ПС?

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,590

    По умолчанию

    порт на ПК закрывается, а в ПЛК Вы закрываете сокет? Ведь ПК вследущий раз обратится к другому сокету,т.к. ПЛК будет держать используемый в Вашей программе до закрытия, а на другие даже не взглянет

  7. #7

    По умолчанию

    В ПЛК сам ничего не закрываю и если честно смутно представляю в какую сторону копать. Не подскажете как закрыть сокет в ПЛК? Думалось, что ПЛК сам разруливает эти моменты. А Через какое время ПЛК сам закроет сокет после закрытия его в ПК? Просто было так, что ПЛК сразу реагировал на повторные посылки, следовательно закрывал сокет сразу, как закрывал его ПК. Но чаще конечно сокет занят продолжительное время.

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,590

    По умолчанию

    Цитата Сообщение от Baxxter Посмотреть сообщение
    Просто было так, что ПЛК сразу реагировал на повторные посылки
    Может ПК не рвал соединение, вот и ответы приходили регулярно. Прочтите темы про веб-сервер, практически в каждом примере есть шаг закрытия сокетов

    P.S. Вы сокет делаете только на стороне ПК или в ПЛК тоже? Если на ПЛК просто задан слейв или мастер ТСР в конфигураторе, тогда вероятнее всего проблемы с программой на ПК
    Последний раз редактировалось capzap; 01.11.2011 в 12:52.

  9. #9

    По умолчанию

    Помогите пожалуйста. Как переменной типа TIME_OF_DAY присвоить значение текущего времени астрономического? В справке не нашел(((
    Чтобы понять рекурсию нужно понять рекурсию

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,590

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    Помогите пожалуйста. Как переменной типа TIME_OF_DAY присвоить значение текущего времени астрономического? В справке не нашел(((
    может здесь посмотрите SysLibTime.lib

Страница 14 из 36 ПерваяПервая ... 4121314151624 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •