Есть глобальная переменная M. Сейчас она нигде не используется.
В визуализации я вывел ее значение. Показывается "INVALID: *** 16#67 ***" (см. картинку).
Вложение 13303
Вид для печати
Есть глобальная переменная M. Сейчас она нигде не используется.
В визуализации я вывел ее значение. Показывается "INVALID: *** 16#67 ***" (см. картинку).
Вложение 13303
добрый день , как сгладить колебания в переменной ? если можно наиболее развернуто дайте ответ ..
Обновил вложение в посте
http://www.owen.ru/forum/showthread....l=1#post139568
Избавился от ComServise, сделал по аналогии с другими FB, однозначное закрытие порта и повторное открытие, потому что если открыть, то происходили чудеса с зависанием порта, счетчик переставал отвечать вообще.
Сейчас вроде работает.
Вопрос в другом, CASE 300, отвечает за считывание массивов энергий за месяц (NumMass=3) и в коде есть проверка на ошибочный ответ от счетчика. В случае если месяц не равен от 1 до 12 (с января по декабрь) параметр Mount то счетчик тупо не отвечает и даже не дает ответа по ошибке.
Кто работал с библиотеками Mercury.lib когда они были через UNM, у вас та же ситуация ?
Как на языке CFC можно реализовать Д-триггер для переменных типа: INT, REAL, WORD ?
Видимо примерно так как и придать им цвет.
kukla100 а что в итоге вы хотите получить ? может SEL спасет ?
Просто с приятелем обсуждали последний наш проект, а в КДС2.3 в библиотеках его нет. Вот и задумались, а как это можно сделать? Если по простому то "MOVE" с "R_TRIG" как бы подходит, а если нужен RESET? То как тогда? Вот и всё.
Вот ещё вопрос, как при изготовлении своей библиотеки в КДС2.3 можно привязать картинки к блокам? К примеру, что бы получилось как у RS-триггера, BLINK и т.д.
kukla100 так при ресете через тот же MOVE запишите 0 или 1 или все, что угодно, хоть первичное значение.
чистый D тригер это булевая переменная, есть в оскатовской бибке, называется FF_DRE
А с ресетом вот, что получилось.
Круто получилось:confused:
Только зачем так сложно?
Почему не так?
Вложение 13352
ЗЫ. А еще можно использовать "Действия"
Вложение 13353
Вот еще вариант использования Действий для установка, например, максимального или минимального значения
Вложение 13354
Да, так много лучше. Всё время забываю, что с програмным продуктом общаюсь:p
Помогите разобраться с проектом. Должен считывать данные с МВ по 485 и выдавать сообщения об аварии, если отличается от нуля. При соединении с ПЛК110 через USB все работает. После записи проекта в ПЛК - пишет на ИП320 "потеря связи" МВ физически при отладке не подключен.
Подскажите как сделать преобразование. У меня сигнал от "0" до "6" как его пребразовать в 4-20мА на аналоговом выходе контроллера ПЛК160
Разделить на 6, умножить на 16, прибавить 4.
Здравствуйте форумчане, пытаюсь победить ПЛК-73. Нарисовал в CFC простую схемку терморегулятора с выводом температуры на экран, сам алгоритм работает нормально, а вот с датчиком беда при подключении контроллера показывает какие то непонятные цифры вместо реальной температуры, настройки уже несколько раз проверял все верно, намой взгляд:confused:Вложение 13391
физически подключен неправильно
Спасибо большое, моя ошибка
Подскажите еще пожалуйста, есть ли где либо примеры работы с клавиатурой ПЛК не в СТ а в CFC? в СТ нашел, но никак не могу их преобразить для CFC.
имеется плк63 и МУ110-6У
в конфигураторе ПЛК для 63го адрес вбил = 100, МУ110 не конфигурировал (1.по идее должны быть настройки по умолчанию?)
в CFC пытаюсь отправить единицу (10В на выход МУ110), но чтото не получается, му110 на выходах нули :(. подключение как по схеме, 0 и 24В беру с выхода ПЛК 24вольтового. что не так? о_О
проект прикрепил (вырезал всё кроме обмена с му110)
Всем коллегам доброго времени суток! Ребята, вот такой вопрос. Имеется ПЛК160 и панель оператора СП270. Создал проект. Записал его в ПЗУ контроллера. Все работает при включении контроллера (все замечательно). Далее попробовал внести изменения в проект (добавил строчку в конфигурацию (ветку) одну). Произошла ошибка... Типа потеря связи... Далее вернул все на место (удалил из проекта добавочную запись). Теперь не могу связаться с контроллером. При подключении онлайн, выдается сообщение "Ошибка 0# типа ошибка связи, произошло отключение". Не могу дальше работать с проектом. Что такое могло произойти? Проект компилируется и ошибок нет. Ноутбук связан с ПЛК по протоколу етзернет.
Ранее (еще раз повторяюсь) записал этот проект в память ПЛК и он работает.
Недавно была такая же ситуация. "0# ошибка связи, произошло отключение". Думал железо барахлит (или косяк какой либо).
Ездил в сервис-центр "ОВЕН". ПЛК проверили на стенде. Работает как часы швейцарские. Проблем нет. Ребята дали заключение. Сам наблюдал проверку тестов.
Потом решили проверить мой проект. Ну да. Моя ошибка оказалась (я новичок извините, тонкостей не знаю). Добавил лишний модуль "Статистика" в проекте. Он то и глючил (при чем ошибок не выдавал зараза...) Главное компилятор ошибок не выдает ни каких. А выскакивало сообщение "Потеря связи..." Удалили лишний модуль из проекта и все заработало вроде.
А на работе один хрен, периодически выскакивает такое сообщение...
Вчера целый день отработал и все на ура. Потом (после добавления строчки) все встало колом. Ошибок нет (компилятор компилит все). Что такое? В чем засада? Понимаю, что железка, вроде как не проблемная.
Кодесис стоит 2.3.9.44.
При желании могу сбросить свой проект на рассмотрение. Просто в данный момент его под рукой нет. Все на работе осталось...
Спасибо!
Да проблема , наверное, совсем простая для опытных пользователей CoDeSes, мне нужно чтобы запуск/остановка алгоритма производился с кнопки старт/стоп на лицевой панели ПЛК-73, программа уже написана, только писал я ее для ПР-110, там все работает(вместо кнопок использовал один из входов, работает как кнопка).А теперь стоит задача для адаптации ее к ПЛК. С языком ST практически не знаком, если можно какой то простой примеров CFC каким образом я могу получать "еденицу" при нажатии кнопки СТАРТ/Стоп. Пересмотрел массу документации и примеров в ST но никак не могу понять как использовать BYTE или DWORD, да и вообще нужно ли их использовать.
Так я обрабатывал нажатия кнопки для ПЛК100Для понимания удобно нарисовать в виде схемы.Цитата:
(*
На входе:
bButtonStartStop - объявляется в конфигурации ПЛК - добавляется модуль Button и ему присваивается такое имя
На выходе:
xButtonPush : BOOL; - обработанное антидребезгом состояние конпки
rtrig_Button : R_TRIG; - одиночный импульс при нажатии на кнопку
*)
(*----------------------------------------------------------------------------------------------------------------------------------*)
(* переменные для обработки нажатия кнопки *)
(*----------------------------------------------------------------------------------------------------------------------------------*)
xButtonPush : BOOL; (* обработанное антидребезгом состояние конпки *)
ton_ButtonPush : TON; (* кнопка нажата - после антидребезга *)
tof_ButtonRelease : TOF; (* кнопка отпущена - после антидребезга *)
rs_ButtonStatus : RS; (* кнопка нажата или отпущена - управляется от состояний нажата/отпущена *)
rtrig_Button : R_TRIG; (* одиночный импульс при нажатии на кнопку *)
(*-------------------------------------------------------------------------*)
(* Кнопка Старт/Стоп *)
(*-------------------------------------------------------------------------*)
(* Проверка нажатия кнопки bButtonStartStop с подавлением дребезга *)
ton_ButtonPush(in:=bButtonStartStop, pt:=t#20ms);
tof_ButtonRelease(in:=bButtonStartStop, pt:=t#20ms);
rs_ButtonStatus(SET:=ton_ButtonPush.q, reset1:=NOT tof_ButtonRelease.Q);
rtrig_Button(clk:=rs_ButtonStatus.Q1);
xButtonPush:=rs_ButtonStatus.Q1;
Вложение 13395
При каждом нажатии кнопки СТАРТ/СТОП (KBD.5:=TRUE, т.е. если KBD:=32) переменная Pusk(BOOL) будет менять свое состояние на противоположное.
ЗЫ. То же самое, но на языке ST
Вложение 13396
Вложение 13397
Вложение 13398
Вложение 13399
Таким образом у меня реализовано включение релейного выхода нажатием кнопки F1 дольше одной секунды
А как мне указать что KBD.5:=TRUE, т.е. если KBD:=32? то есть что именно при 32 клавиатуры а не при каком другом ее значении, получается мне нужно присвоить KBD.5 значение 32, а как это сделать в CFC я не пойму, принцип действия понимаю, а конкретно реализацию никак:confused:
Я неправильный вариант, отправил
Вложение 13404
Вложение 13405
Пятый бит переменной KBD устанавливается при нажатии кнопки на панели контроллера, его устанавливает сам контроллер:), в программе его устанавливать не надо, просто использовать этот бит и все.
Для справки другие биты переменной KBD
Вложение 13403
Т.е. при одновременном нажатии нескольких кнопок в переменной KBD будут единицы в разных разрядах. Но даже если нажать ПУСК и ВВОД, то все равно KBD.5:=TRUE.
Если вопрос о том, как проверить в эмуляторе, то нужно переменной KBD присвоить значение прямо в конфигурации (щелкнуть на переменной и ввести нужное значение.
Единственно, что обратил внимание, при выполнении программы, у меня значение key_f1 периодически меняется с 1 в 0 и обратно, то есть приходится ловить момент, когда она в 1, чтобы замкнуть вход. Это баг конкретного плк или что?
УрААААААААААААААААААААААААААААААА!!!! Заработало!!! Спасибо большое за детальные ответы, и огромное терпение к моим вопросам.
Помогите сделать связь с MB110 c ПЛК по 485 интерфейсу.
настройки ПЛК сделал ModBus master. Настройки МВ оставил по умолчанию.
Помогите - неделю уже бьюсь!