Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 13 из 13

Тема: СПК 107, глючит диалог с переменными в модбасе

  1. #11

    По умолчанию

    Вы поняли неверно. Проблема не решилась объявлением буль-переменных в GVL и соотнесением их к битам в модбасе. При этом на любую операцию с этими переменными - ошибка "переменная уже соотнесена и не может быть повторно использована". Это тоже что-то совершенно за гранью здравого смысла. Я её соотносил именно для того чтобы ей пользоваться и она, использованная, отправлялась через модбас в соответствующее устройство.

    А проблема решилась написанием лишнего кода. Вместо того чтобы просто открывать диалог, указывая ему какую переменную надо изменить по какому статусу закрытия, а в самом диалоге, в кнопке на закрытие прописать всего лишь нужный статус, мне пришлось объявить константы-идентификаторы для каждой переменной, эти идентификаторы передавать диалогу, а в его кнопке закрытия писать код для каждого идентификатора.

  2. #12

    По умолчанию

    gs_62, спасибо за разъяснения по "переменные, объявленные в модбас".
    Цитата Сообщение от gs_62 Посмотреть сообщение
    BOOL это и есть один бит.
    И я его не привязывал, а просто проименовал бит. Тем самым создалась пременная типа BOOL, и никакой другой тип у бита невозможен.
    Особенность CoDeSys - это невозможность объявить в программе переменную в размере памяти 1 бит. Переменная BOOL занимает размер памяти 8 бит (п.7.4.2 SPK_First_start_v.1.0.pdf), хотя информационный размер 1 бит. В справке есть отдельная тема: "Доступ к битам переменных", указывается номер бита через точку после имени.
    В соотнесениях входов/выходов модбаса для отдельных бит указан тип BOOL, но размер памяти у каждого битового канала - 1 бит. То есть в данном случае это "другой" BOOL.
    Именно в этом "несоответствии" BOOL, как я предполагаю, заключена Ваша первоначальная проблема. Что это: либо недоработка 3S, либо необходима определенная особенность работы с данными типами? Хотелось бы по этому вопросу получить разъяснения от специалистов ОВЕН.

    По Вашей Задаче (способ без лишнего кода в кнопках):
    1. В соотнесениях входов/выходов модбаса привязать BYTE или WORD переменную, например out.
    2. Объявляете переменные в GVL, например массивом структуры aGroup:ARRAY[1..n] OF group (в структуре group определяем булевы nasos и klapan).
    3. Обращаетесь к объявленным переменным как aGroup[i].nasos и aGroup[i].klapan, в том числе и при открытии диалога, вызываемом по нажатию на элемент, указывая ему какую переменную надо изменить по какому статусу закрытия.
    4. В конце программы привязываете к битам out, булевы переменные из программы, например out.1:=aGroup[1].nasos.

  3. #13

    По умолчанию

    Я не люблю сложных имён переменных. Мне надо чтоб было без точек. Чтоб в коде она выглядела так же как в схемах. Пусть уж у меня остаётся как есть. Работает - и ладно.

    Кстати, страшно подумать сколько машинных инструкций будет делать такой код, как вы предлагаете. А если 32 дискретных выхода?

    Вот так и сжираются любые гигагерцы, циклы раздуваются, из за невозможности соблюсти временные интервалы, связь обрывается...

    Я когда-то, лет 20 назад, когда о промышленных контроллерах и не слышно было, делал распределённую систему. Всё сам - платы на однокристалках 80С31 16 МГц, прошивки писал на ассемблере, свой протокол, своя физика шины, скорость 9600, по абы каким (силовым) проводам работало на 200 м, общее число управляемых выходов - немеряно, и всё летало, реакция почти мгновенная, что такое потеря связи я не знал.
    А теперь, все эти гигагерцы, мегабайты и прочее, помножены на 0.001 вот такими "системами программирования" как кодесис.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Можно ли открыть диалог из программы?
    от a_gricaj в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 04.02.2016, 10:10
  2. Как закрыть диалог из программы
    от P_Ilya в разделе СПК2xx (архив)
    Ответов: 2
    Последнее сообщение: 21.11.2015, 06:13
  3. ПЛК 150 ГЛЮЧИТ AI RTD sensor
    от Scream в разделе ПЛК1хх
    Ответов: 18
    Последнее сообщение: 09.10.2015, 11:02
  4. Таймер TP что то глючит....
    от kholonkin в разделе СПК1xx (архив)
    Ответов: 29
    Последнее сообщение: 12.12.2014, 09:59
  5. Сидят ли у кого-нибудь ПКП1 на модбасе?
    от Slev в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 17.03.2012, 13:21

Ваши права

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