PDA

Просмотр полной версии : Отрицательная температура МВА-ПЛК100-СП270



Lenochka
16.11.2011, 09:03
Добрый день!
Столкнулась с проблемой отображения отрицательной температурой на СП270. На форуме промелькнула тема но я так и не поняла как сделать :( Просьба, сделать простой пример как надо! Без наглядности не получается :)

swerder
16.11.2011, 10:14
http://www.owen.ru/forum/showthread.php?t=11273
Сенсорная панель оператора СП270
Пример Эмулятор ТРМ1: ПЛК1хх + СП270 (Master) + МВА8
Скачать (http://kipshop.ru/Primeri/HMI/03_11_PLC1XX+MVA8+SP270[Master]_emulatorTRM1.zip) 627К

+ либо упрощенный вариант

Lenochka
16.11.2011, 12:56
Пример с ТРМ1 не проходит, при отрицательной температуре выдаёт ерунду, там что то с данными WORD и INT.

swerder
16.11.2011, 14:00
смотрите упрощенный вариант

Lenochka
19.11.2011, 19:06
Не, НЕ РАБОТАЕТ!!! Ни навороченный, ни простой примеры ТРМ1, увы при - температуре выдают "фигню" опробовала все примеры :( ЧТО делать! Подскажите!!!

Адрей
19.11.2011, 19:30
Не, НЕ РАБОТАЕТ!!! Ни навороченный, ни простой примеры ТРМ1, увы при - температуре выдают "фигню" опробовала все примеры :( ЧТО делать! Подскажите!!!

Проблема ваша решаема.

1. Настраиваем МВА8 на работу c Float.
2. ПЛК читает модуль МВА8 и передает Float.
3. СП270 ставим пример №4.
http://www.owen.ru/forum/showthread.php?t=10890

Lenochka
19.11.2011, 19:57
Ок, попробую. Спс за совет. ;)

Lenochka
20.11.2011, 19:36
Не ничего из перечисленного не работает:(, Тем более 4 пример. Всё хорошо до того как показания перевалят в минус начинаются танцы народов севера. У меня показания Float идут на панель (видно при прямом подключении к ПЛК) но при переходе в минус цифры на панели начинают гулять. Пробовала разные настройки отображения, не помогает.

swerder
21.11.2011, 08:32
а брать с модуля int и его же передавать на панель?

Адрей
21.11.2011, 10:21
Проект выложите посмотрим.

Lenochka
21.11.2011, 10:25
int передавала, бесполезно, вечером выложу.

swerder
21.11.2011, 10:28
как бэ сообщения вида "ничего не работает, помогите" не очень информативны, обычно в ответе есть словосочетание "дежурные телепаты в отпуске"

Lenochka
21.11.2011, 10:42
:) не, просто, ну не получается. Обидно хочется самой разобраться, вечером буду на объекте, выложу.

Александр Приходько
21.11.2011, 10:50
День добрый.
Данная тема поднимается в миллионный раз.
Есть замечательная вещь - поиск по форуму.

Постараюсь донести суть.

Берем с модуля некое значение Mod_AI, получаем его в регистр типа WORD.
Создаем регистр для ИП320 тоже тип WORD и назовем IP_AI.
В конфигурации панели не забываем поставить соответствующему регистру галочку - знак. Если ее не поставить, будет ерунда.

Ну а далее в программе нужно переменной IP_AI присвоить Mod_AI.

Lenochka
21.11.2011, 19:00
Уважаемый Александр! Всё это говорит не в пользу поддержки ОВЕН раз данная тема подымалась и подымается миллион раз! Достаточно дать внятный и понятный простым пользователям ответ. Даже вы невнимательны если в теме про СП270 пишете ИП320. Для вас может и нет разницы как специалисту. Далее, как может регистр типа WORD иметь отрицательное значение? Здесь же на форуме писалось что это не возможно. Потом если я поставлю знак - то при плюсовой температуре что будет показывать? 5089

Адрей
22.11.2011, 05:47
Уважаемый Александр! Всё это говорит не в пользу поддержки ОВЕН раз данная тема подымалась и подымается миллион раз! Достаточно дать внятный и понятный простым пользователям ответ. Даже вы невнимательны если в теме про СП270 пишете ИП320. Для вас может и нет разницы как специалисту. Далее, как может регистр типа WORD иметь отрицательное значение? Здесь же на форуме писалось что это не возможно. Потом если я поставлю знак - то при плюсовой температуре что будет показывать? 5089
Добавьте в конфигурацию ПЛК элемент 8bit для четности.

Lenochka
22.11.2011, 06:25
Добавьте в конфигурацию ПЛК элемент 8bit для четности.

В конфигурации ПЛК данный параметр стоит :(

swerder
22.11.2011, 08:43
воткните между 8 bits (* данные из панели *) и первым 2 byte еще 1 элемент 8 bits

Адрей
22.11.2011, 13:40
панели у меня нет, я проверял на эмуляторе, но он вроде для того и существует, чтоб повторять панель.
Многие примеры в эмуляторе работают а в панели нет. :)
Разве мы здесь не теорию обсуждаем.

Адрей
22.11.2011, 17:09
Регистры менять это уже в прошлом, с этой задачей неплохо справляется так называемая "функция чтение".
Как и с ПЛК так и с СП270 можно найти ряд особеностей которые и сбивают новичка с толку.

swerder
22.11.2011, 17:25
кстати да, в приведенном Леночкой проекте отображение флоата с отрицательной температурой идет через считывание регистров плк в оперативку панели

Адрей
22.11.2011, 18:50
было бы куда подключить ПЛК (несчитая эсулятора, который как выяснилось может и не помочь), я бы попробовал и функции чтения на видео записать.
Может температура ложится в какой нибудь специфичный регистр, в который ядро системы дополнительно ложит свою информацию, отсюда и проблемы, так здесь делов то - сменить регистр
Восновном это так и бывает в большенстве случаев.
А насчет видио зачем, пример №4 то рабочий пропиши в ПЛК мва8 да пробуй. Готовый пример куда легче чем видио.

Lenochka
22.11.2011, 22:50
В общем всё получилось, завтра отпишу подробности, но я разочарована в компании ОВЕН и её продукции. Сумела убедить руководство холдинга от отказа закупки оборудования. Будем использовать симантики и лого.

Николаев Андрей
22.11.2011, 23:20
Ну что же, ждем подробностей...
Могу принести извинения, что не смогли своевременно направить на путь истинный. Жаль, что никто из форумчан не подсказал... :)
Для тех, кто не разобрался
http://www.owen.ru/forum/showpost.php?p=24533&postcount=47
Все, чего не хватало в примерах с ТРМ1:
Имя переменной для обмена с панелью задавать не в конфигурации ПЛК, а в области определения глобальных или локальных переменных. Причем объявлять её не как Word (как Леночка правильно отметила), а как INT. Word в конфигурации ПЛК показывает занимаемое место в памяти... Переменную, привязанную к этому каналу вполне можно использовать типа int.
Ну а далее как в примере...

in1 (*соответствующий МЭК адрес переменной AT %...*): real; (*значение полученное с ТРМ или модуля или из вычислений*);
out1 (*соответствующий МЭК адрес переменной AT %...*): int; (*значение, которое надо передавать на панель*);

out1:= (real_to_int (in1))*10;

При этом при конфигурировании панели (не важно - ИП320 или СП270) Вы ставите количество знаков после запятой - 1.
Если нужно 2 знака, то в строчке умножаете не на 10, а на 100.

Я не собираюсь отговаривать Вас делать на Симатиках или Лого, абсолютно.
Есть несколько предложений:
1. Если Вы таки данный проект будете доделывать на ОВЕНе - пришлите свой проект на a.nikoalev@owen.ru - есть еще что подкорректировать. CoDeSys не ЛогоСофтКомфорт - больше дает возможностей, но и к большему обязывает. Ну например я не рекомендую использовать шаблон MVA8, а брать Universal ModBus Device...
2. Таки в вашем КОНЦЕРНЕ еще станет вопрос об использовании продукции ОВЕН, и я готов буду помочь Вам обосновать почему стоит использовать контроллеры ОВЕН.

С большим уважением и практически без иронии - искренне Ваш, Андрей Николаев.
Если не секрет - а что за КОНЦЕРН Вы представляете? Можно в личку...

Lenochka
23.11.2011, 09:09
Добрый день! Проблему решили путём перебора регистров передачи в ПЛК, к сожалению забыла флешку с проектами на объекте и смогу выложить только ближе к вечеру.
Теперь, я работаю начальником сервисной службы автоматизированных систем управления (рекламу фирмы даёт другой отдел :) ) . Мы заключили контракт на строительство дачного посёлка на юге МО для депутатов госдумы. Каждый дом будет иметь автономное отопление, водоснабжение, энергообеспечение и канализацию, + диспетчерский пульт дистанционного управления и ALARM. Данный проект будет доделан до конца т.к. тестовый стенд куда то девать надо, скорее всего поставим на бассейн или дом для обслуживающего персонала.

swerder
23.11.2011, 09:11
Имя переменной для обмена с панелью задавать не в конфигурации ПЛК, а в области определения глобальных или локальных переменных. Причем объявлять её не как Word (как Леночка правильно отметила), а как INT.
in1 (*соответствующий МЭК адрес переменной AT %...*): real; (*значение полученное с ТРМ или модуля или из вычислений*);
out1 (*соответствующий МЭК адрес переменной AT %...*): int; (*значение, которое надо передавать на панель*);

out1:= (real_to_int (in1))*10;


пардоньте, но это было еще в примере на первой странице этой темы, пост #3. поэтому и было такое уточнение:

как бэ сообщения вида "ничего не работает, помогите" не очень информативны, обычно в ответе есть словосочетание "дежурные телепаты в отпуске"

Николаев Андрей
23.11.2011, 19:30
Рад, что у Елены все получилось.
Всем спасибо за внимание.
С Еленой, думается мне, мы еще поработаем.

Lenochka
23.11.2011, 19:56
Вот выкладываю рабочий макет проекта, почти сутки проработал без нареканий. 5100

Николаев Андрей
23.11.2011, 20:35
Я бы сказал таки, что Вы в самом начале...
CoDeSys дает нереальное количество возможностей :)
Из того, что я не увидел:
Отслеживание ликвидности показаний датчиков температуры.
Отслеживание состояния оборудования, и подсчет наработки.

Таки замените в ModBus Slave шаблон MVA8 на UniversalModBusDevice. И время опроса в два раза увеличите, и UNM предпочтительнее из опыта.

В общем то - если вернетесь к контроллерам ОВЕН - милости просим.
Либо по почте\на форуме. Либо приезжайте прям к нам.

Andrei Z
23.11.2011, 21:00
может быть вопрос не в тему чайника - но когда открываю примеры проекта окно всплывает

Николаев Андрей
23.11.2011, 22:08
Вопросы действительно чайника ;)
Все ПО имеет версии.
В данном случае:
Установленная у Вас версия Target файла не соответствует версии Target файла под которой писался проект. Или Target файл для данного контроллера вообще не установлен.
2. Говорит, что в проекте использовались библиотеки, которые у Вас по умолчанию не добавлены в соответствующую директорию.

И про первое и про второе настойчиво рекомендую почитать в РП по программированию к ПЛК110.