Помогите, пожалуйста, разобраться. Работа с Ломиконт. Создана ФО-задатчик. Табло ФО привязаны к каналу АВ-000 тип I, кнопка ввода ФО привязана к каналу АВ-000 тип О, кнопки больше-меньше привязаны к каналу <>АВ-000 тип О, чтобы реализовать режим пульта (стр.439 руководство пользователя). Все в принципе работает, но реакция на кнопки медленная (несколько секунд). В чем причина? И корректно ли таким образом реализовывать задатчик?
Posted by VICTOR S (Участник № / Member № 766) on :
Пробный "пустой" проект, где реализован только этот задатчик работает хорошо, реакция на кнопки достаточно быстрая, как только эта же ФО используется в "большом" проекте (пока 350-500 каналов)время реакции большое. Понятно, что оно должно увеличиться, но не до нескольких секунд же? Что Вы посоветуете?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ломиконт какой - ТМ или старый?
Posted by VICTOR S (Участник № / Member № 766) on :
ломиконт 110
Posted by VICTOR S (Участник № / Member № 766) on :
Так что же делать с задатчиком?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Смотрите атрибут Достоверность по каналам, которые у Вас используются для обмена с контроллером, если там проскакивает 1 (аппаратная недостоверность), то обмен в ТМ с контроллером будет притормаживать из-за таймаутов по каждой такой недостоверности, что естественно может приводить к задержкам на изменения посылаемых в устройство параметров.
Posted by VICTOR S (Участник № / Member № 766) on :
Да, аппаратная недостоверность по каналу типа <>AB "скачет" в 1. Но непонятна как раз причина ее возникновения. Другие то каналы нормально обрабатываются. Причем эта недостоверность по каналу типа <>AB присутствует даже в "пустом" проекте, где реализованы всего три канала для задатчика - табло, кнопка ввода значения (ввод и посылка) и кнопки больше-меньше (режим пульта).
Posted by VICTOR S (Участник № / Member № 766) on :
Причина недостоверности стала понятна.В ФО задатчик реализованы четыре кнопки по нажатию которых происходит посылка значений 0,1,2,3 в канал <>AB (стр.439). Канал АВ тип I меняет свое значение. Но при повторном нажатии одной из кнопок ничего не происходит, в канале <>АВ осталось значение от предыдущего нажатия. Чтобы избежать этого в канал <>АВ каждый раз посылается значение отличное от 0,1,2,3 (например восстановление до 4), но тогда возникает недостоверность и "тормозится" обработка. Либо необходимо нажать другую кнопку, (тем самым изменить значение канала) и уж потом опять нажать нужную. Ситуация вроде бы простая,но,видимо, я чего-то недопонимаю. Расчитываю на Ваши пояснения.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы "копаете" не в том направлении...
Недостоверность равная 1 означает аппаратную недостоверность. Появляется в следующих ситуациях: 1) Если устройство не отвечает на запрос/посылку в течении таймаута на запрос сервера по данному каналу. 2) Физический обрыв канала связи с устройством, тогда по всем каналам будет Недостоверность. 3) Запрошены или переданы данные несуществующему устройству или адресу в памяти устройства. 4) В ответ от устройства приходят некорректные пакеты ответов (при запросе данных) или подтверждении (при отвправке).
Наиболее же вероятная причина Недостоверности - Вы неверно задали настройки для канала (например несуществующий параметр в контроллере).
В любом случае - смотрите после работы проекта лог-файл в директории проекта с именем запускаемого узла и расширением TXT, там будут отображены все ошибки работы Вашего проекта!
Posted by Larik (Участник № / Member № 191) on :
Советую посмотреть заказ переменных - должно быть не меньше сигналов, которые запрашивает ПЭВМ.
Posted by VICTOR S (Участник № / Member № 766) on :
Хорошо, сформулирую вопрос немного иначе. Каким образом в ТМ реализовать повторную посылку значения канала <>АВ в ЛОМИКОНТ 110 (режим пульта)(стр.439) (например, 2-увеличить быстро, и еще раз, 2-увеличить быстро). Установлено, что если канал НЕ ИЗМЕНИЛ своего значения, то вторая посылка в ЛОМИКОНТ (в линию)не передается, и двойное (многократное) нажатие кнопки задатчика не реализуется.
Posted by Larik (Участник № / Member № 191) on :
Так ведь есть в ФО - посылка значения - добавить, а там добавляй любую цифру - хоть 20 единиц, хоть 30 единиц.
Posted by Doloy (Участник № / Member № 826) on :
Сергей не совсем прав... Здесь ситуация примерно такая же, как и с копированием СПАД: берется кнопка со срабатыванием "по нажатию", осуществляется прямая посылка "2" и ставится галочка "Восстанавливать значение" (кстати, у этого канала необходимо поставить "отработать при старте", например, "0")
Posted by Larik (Участник № / Member № 191) on :
Теперь понял Просто такими каналами <>АВ мы никогда не пользовались. В этой ситуации действительно необходимо посылку значения с возвратом.
Posted by VICTOR S (Участник № / Member № 766) on :
В том то и дело, что "специфика" переменной типа <>AB заключается в том, что она "понимает" только значения 0,1,2,3. Все другие значения по каналу данного типа воспринимаются Ломиконтом как недостоверные. ОТРАБОТАТЬ ПРИ СТАРТЕ и ВОССТАНАВЛИВАТЬ ЗНАЧЕНИЕ -отлично, но вопрос, какое значение, чтобы не было недостоверности? Да, бесспорно, задатчик можно реализовать с помощью "ПОСЫЛКА В КАНАЛ - ДОБАВИТЬ". Но как же тогда полноценная поддержка переменных типа <> (режим пульта). Очередной раз ссылаюсь на стр.439 Руководства пользователя ТМ.
Posted by Doloy (Участник № / Member № 826) on :
Единственное, что могу заметить по этому поводу - выкиньте этот 110-й хлам (если, конечно такое возможно ), лучше уж Ломиконт-ТМ. Хотя, это тоже железяка та еще...
Posted by Larik (Участник № / Member № 191) on :
Согласен, хотя если всё хорошо отлажено, то он будет работать долго. Помню, мы тоже долго мучались, пока освоили. Но сейчас вроде всё нормально работает.
Posted by VICTOR S (Участник № / Member № 766) on :
Ломиконт110 - вещь надежная! И ТМ преобретался потому, что в нем заявлена его поддержка. Но все таки хотелось бы узнать мнение и рекомендации TECHNICAL SUPPORT по использованию переменных типа <>.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Согласно протоколу обмена с Л110 команды "0 – увеличить, 1- уменьшить, 2 – увеличить быстро, 3 – уменьшить быстро" являются именно командами протокола, которые передаются разово в контроллер в виде команд с соответсвующим кодом в протоколе обмена. Это не означает, что пока Вы держите кнопку на экране мы в протоколе передаем увиличивающееся значение этого тэга - просто передается разовая команда в стандартном протоколе Л110, а уж на сколько и что он увеличивает или уменьшает и как - это функция самого Л110, а не ТМ. И если Л110 часто не может понять пакеты протокола, о чем говорит Достоверность в 1 на канале (значит, что от Л110 не пришло подтверждение на отправленную команду в течении заданного таймаута), то это либо проблемы самой железки Л110, либо размера таймаута, который Вы задали для обмена. А Л110 на обмен "железо" очень медленное для него таймаут должне быть никак не меньше 1500 мс!
Posted by VICTOR S (Участник № / Member № 766) on :
Простите пожалуйста, но Вы опять не поняли суть вопроса. Ещё раз.Есть канал управляющий переменной типа <>.Значение канала может быть 0,1,2,3.(четыре кнопки задатчика).При передаче в Л110 этих значений одноразово (одно нажатие) не возникает трудностей, не вызывает трудностей и передача этих значений в любой последовательности (но по одному нажатию). Проблема в том, что не удается реализовать в ТМ повторную посылку в Л110 одного и того же значения (например,2)(т.е два раза нажать одну и туже кнопку). А Недостоверность- это уже следствие опытов и попыток обойти эту ситуацию. Причина ее ясна и речь сейчас уже не о ней!!!
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Принудительная выдача значений по каналам типа Output в ТМ возможна. Для этого данные каналы необходимо поместить в отдельный объект базы каналов, сделать его загружаемым и создать в базе канал типа ОБЪЕКТ_Выдача с типом Output, который необходимо настроить на вышеуказанный объект с Output-каналами. Если в реальном времени изменять значение канала с нулевого на ненулевое, то по всем output-каналам из управляемого объекта будет формироваться принудительная посылка во внешние интерфейсы, на которые они настроены, даже, если их значения не менялись.
Posted by VICTOR S (Участник № / Member № 766) on :
Таким образом, если у меня в проекте 20 задатчиков и мне необходимо работать с каждым по отдельности (по времени), то необходимо создать 20 объектов базы и 20 каналов типа ОБЪЕКТ_выдача (для исключения посылки значений во все задатчики сразу)?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :