Вход

Просмотр полной версии : ПЛК Twido и HMI СП310



alexfly
01.07.2016, 15:48
Коллеги, подскажите как поступить. Подключил панель к ПЛК по протоколу MODBUS RTU. Панель Mester, контроллер Slave. С панели на контроллер бит проходит на ура, а в обратную сторону - никак.
Настройки панели - 9600-8-1-без контроля четности, задержка отправки 20мс
Настройка ПЛК - 9600-8-1-без контроля четности, response timeout 50x100мс, time between frames 10мс.

С панели на контроллер отправляем бит 0x0 (при этом на ПЛК срабатывает %M0), в обратную сторону отправляем 0x1 и ждем срабатывания %M1.

Есть мысли?

capzap
01.07.2016, 16:27
в чем подвох, панель мастер и только она может отправлять запросы на чтение или запись битов/регистров. Что означают слова в обратную сторону отправляем 0x1кто отправляет запрос на установку бита, плк? Или это Вы так объясняете раоту функции чтения из панели

alexfly
01.07.2016, 16:34
Запись регистра с HMI в PLC проходит корректно, а чтение PLC в HMI не проходит. При этом на панели все время светится сообщение "Соединение PLC порт 1".

capzap
01.07.2016, 16:51
Запись регистра с HMI в PLC проходит корректно, а чтение PLC в HMI не проходит.
опять как то витиевато, к тому же возвращаясь к первому посту
отправляем 0x1 и ждем срабатывания %M1
допустим Вы читаете панелью бит %М1, счего он вдруг должен сменить состояние, он его менять должен из программы плк, а панель должна визуализировать его изменение

petera
01.07.2016, 17:54
Коллеги, подскажите как поступить. Подключил панель к ПЛК по протоколу MODBUS RTU. Панель Mester, контроллер Slave. С панели на контроллер бит проходит на ура, а в обратную сторону - никак.
Настройки панели - 9600-8-1-без контроля четности, задержка отправки 20мс
Настройка ПЛК - 9600-8-1-без контроля четности, response timeout 50x100мс, time between frames 10мс.

С панели на контроллер отправляем бит 0x0 (при этом на ПЛК срабатывает %M0), в обратную сторону отправляем 0x1 и ждем срабатывания %M1.

Есть мысли?
Какая ссылка в адресе на запись бита %M1?
Должна быть 0х, как на картинке
25228

А если сделали так
25229
То все верно панель сообщает о потери связи
Ведь биты в адресном пространстве 1х контроллера только для чтения, какая запись?
http://www.owen.ru/forum/attachment.php?attachmentid=12621&d=1397777586

alexfly
01.07.2016, 18:58
Сделано все правильно. Отправляем 0x0, пытаемся прочитать 0x1. Программа в ПЛК пока предельно примитивная. Контакт M0 замыкает катушку M1. На данный момент глобальная задача просто увидеть обратную связь.

petera
01.07.2016, 20:04
Так как Вы не можете выбирать непосредственно регистры "М" Twido, в отличии от меня,:rolleyes:
То у Вас для кнопки и лампы должно быть так
25235 25236

alexfly
02.07.2016, 01:23
Так как Вы не можете выбирать непосредственно регистры "М" Twido, в отличии от меня,:rolleyes:
То у Вас для кнопки и лампы должно быть так
25235 25236

Да так и сделано... Буду в пн подключаться к контроллеру с помощью OPC-сервера и смотреть, что он отдает...

alexfly
04.07.2016, 14:55
Продолжаем разговор. Коннект установил. Но когда количество слов на экран превышает 18 связь с ПЛК теряется. Есть какие-то явные ограничения?

petera
04.07.2016, 15:29
Продолжаем разговор. Коннект установил. Но когда количество слов на экран превышает 18 связь с ПЛК теряется. Есть какие-то явные ограничения?

О, аппетиты растут.:)

Программа в ПЛК пока предельно примитивная. Контакт M0 замыкает катушку M1. На данный момент глобальная задача просто увидеть обратную связь.
С битам, что было не так?

alexfly
04.07.2016, 15:33
Если честно, то непонятно. После выходных включил систему и все заработало. Шаманство!!!

petera
04.07.2016, 15:45
Если честно, то непонятно. После выходных включил систему и все заработало. Шаманство!!!

18 слов на экране. Они имеют последовательные адреса или с промежутками?

alexfly
04.07.2016, 15:49
Адреса имеют две последовательности (от 4x0 до 4x11 и от 4x16 до 4x21). Если добавляю еще хотя бы одно слово - связь рвется.

petera
04.07.2016, 16:00
Адреса имеют две последовательности (от 4x0 до 4x11 и от 4x16 до 4x21). Если добавляю еще хотя бы одно слово - связь рвется.
А какой адрес у добавляемого слова - между 4x11 и 4x16 или больше чем 4x21
Я не знаю как там в твидо память слейва организована. Должны ли присутствовать все регистры от 4x0 до 4x22 в программе ПЛК или в слейве фактически присутствуют только те, которые присутствуют в программе.
Панель ведь формирует групповые запросы, до 16 последовательных регистров в одной группе.

Santi
04.07.2016, 16:06
Те слова, которые Вы читаете из Twido, д.б. в этом Twido объявлены/прописаны. Т.е. если в программе Twido последнее используемое слово %МW21, то %MW22 или старше Вы уже не считаете. Драйвер, которым пользуется панель для связи с подчиненными ус-вами, скрыт для пользователя, а в ОВЕНовских панелях он явно не оптимальный, поэтому я в своих проектах делал мастером ПЛК, может не всегда проще, но предсказуемей и быстродействие определенно лучше.

petera
04.07.2016, 16:14
С учетом замечания
Те слова, которые Вы читаете из Twido, д.б. в этом Twido объявлены/прописаны. Т.е. если в программе Twido последнее используемое слово %МW21, то %MW22 или старше Вы уже не считаете.
Не следует делать "дырки" в адресах регистров и все будет гуд.
т.е. если Вы имеете группу от 4x0 до 4x11, то добавив на экране один регистр 4х13 или 4х14 или 4х15 тем самым заставите панель читать группу последовательных регистров
или от 4x0 до 4x13 в слейве нет одного регистра -4х12
или от 4x0 до 4x14 в слейве нет двух регистров -4х12 и 4х13
или от 4x0 до 4x15 в слейве нет трех регистров -4х12, 4х13, 4х14.

ЗЫ.
Если дело именно в групповом запросе, и без "дырок" в адресах регистров не обойтись, то можно обмануть панель и она не будет включать в групповой запрос такие регистры. Для этого можно использовать "переадресацию" (в СП300 она называется "динамическая адресация")http://www.owen.ru/forum/showthread.php?t=17497&p=139257&viewfull=1#post139257

Santi
04.07.2016, 16:30
"Дырки" конечно лучше не делать, но не всегда это возможно. В некоторых серийно выпускаемых изделиях адресация идет с "дырками" и пользователь ничего сам исправить не может. Правильный мастер считывает именно те регистры, которые указал пользователь. Так как Вы пишите, что панель читает по 16 слов (кстати откуда такая инфо?) - в правильном ус-ве быть не должно. Считываться должны только те регистры, которые указал пользователь. Если они с "дырками" значит д.б. не одна операция чтения, а несколько. Так д.б., а как это делает СП - мне, например, неизвестно.

Santi
04.07.2016, 16:40
Пока писал, пропустил Ваше сообщение. Мне проще сделать свой "оптимальный" протокол в ПЛК, чем разбираться в имеющемся конфигураторе. Недостаточно продвинутый я пользователь. В практических проектах с одним и тем же набором ус-в (мастер и 2 слейва) и переменных, при мастере на ПЛК цикл обмена получался 0,5 сек, при мастере панели (правда СП270) - 2 сек.

petera
04.07.2016, 16:43
"Дырки" конечно лучше не делать, но не всегда это возможно. В некоторых серийно выпускаемых изделиях адресация идет с "дырками" и пользователь ничего сам исправить не может. Правильный мастер считывает именно те регистры, которые указал пользователь. Так как Вы пишите, что панель читает по 16 слов (кстати откуда такая инфо?) - в правильном ус-ве быть не должно. Считываться должны только те регистры, которые указал пользователь. Если они с "дырками" значит д.б. не одна операция чтения, а несколько. Так д.б., а как это делает СП - мне, например, неизвестно.
Инфа - http://www.owen.ru/forum/showthread.php?t=14132&p=139313&viewfull=1#post139313
А мне известно.:rolleyes: Панель это делает так
Регистры 3х и 4х. Чтение
Все регистры, используемые в качестве источника данных для элементов активного экрана, постоянно и безусловно читаются из слейва с периодичностью заданной в настройках "Коммуникационный интервал" порта панели.
Чтение будет осуществляться группой если адреса регистров отличаются не более чем на 5, например
- для двух дисплеев с регистрами Wrd 4х00 и 4х5 будет одна команда чтения шести регистров 0,1,2,3,4,5. А для двух дисплеев с регистрами Wrd 4х00 и 4х6 будут две отдельные команды чтения по одному регистру.
- для двух дисплеев с регистрами DWrd 4х00 и 4х6 будет одна команда чтения восьми регистров 0,1,2,3,4,5,6,7. А для двух дисплеев с регистрами DWrd 4х00 и 4х8 будут две отдельные команды чтения по два регистра.
Соответственно к вышеописанной цепочки из двух регистров могут добавляться последующие регистры, если их адрес отличаются не более чем на 5 от предыдущего. Например
- для трех дисплеев с регистрами Wrd 4х00, 4х5 и 4х8 будет одна команда чтения девяти регистров 0,1,2,3,4,5,6,7,8.
и т.д.
Но максимальное число регистров в групповой команде чтения не может превышать 16.
Т.е. если есть функция прочитать блок данных из ПЛК, например, 50 регистров, то будет сформировано четыре команды чтения (три по 16 регистров и одна 2 регистра).
Как правило такое поведение панели оправдано.
Но действительно есть случаи когда

Считываться должны только те регистры, которые указал пользователь
Как я уже писал ранее это делается элементарно с помощью галки "Дин. адр.", на примере МСД200 http://www.owen.ru/forum/showthread.php?t=17497&p=139257&viewfull=1#post139257

Santi
04.07.2016, 17:04
Лично Вам респект... О панеле так не скажу.

alexfly
05.07.2016, 14:00
Дело было не в бабине... Twido сам по себе отказывается отдавать более 16 регистров за раз. Сразу связь обрывает.

Santi
05.07.2016, 14:48
В Twido действительно есть ограничение на длину одной посылки Модбас, но это то ли 256, то ли 128 байт(включая служебные слова), сейчас не вспомню конкретно, давно это было. Но 16 слов (32 байта) это точно не предел. Я всегда использовал его Мастером и он у меня принимал/передавал посылки по 40 слов. Больше не надо было, поэтому не пробовал где предел. Но по 40 слов в панель и обратно - реально без проблем и очень быстро. Почитайте его руководство в части Модбас и что д.б. сконфигурировано в его аппаратной части и в программе пользователя, чтобы он работал в качестве слейва.

Santi
05.07.2016, 14:49
А как Вы решили, что это Twido затыкается, а не панель?

petera
05.07.2016, 14:51
Дело было не в бабине... Twido сам по себе отказывается отдавать более 16 регистров за раз. Сразу связь обрывает.

Если Вы внимательно прочтете #19 пост, то поймете, что панель "за раз" не может прочитать больше 16 регистров в одном запросе, т.е. если у Вас на экране 20 последовательных регистров, то их чтение из контроллера будет не "за раз", а за два раза.:)

alexfly
05.07.2016, 16:26
На данный момент вот что получается: на первом экране 16 слов читается без проблем, на втором экране 1 бит - уже читаться не хочет...

petera
05.07.2016, 16:30
На данный момент вот что получается: на первом экране 16 слов читается без проблем, на втором экране 1 бит - уже читаться не хочет...

В обмене участвуют только регистры активного экрана. По этому, когда будет переход на второй экран с одним битом только он и будет читаться из ПЛК, а 16 регистров на первом экране в это время "курят". Похоже Вы вернулись к началу темы

С панели на контроллер отправляем бит 0x0 (при этом на ПЛК срабатывает %M0), в обратную сторону отправляем 0x1 и ждем срабатывания %M1.

Santi
06.07.2016, 15:12
Я в архиве нашел нетипичный для себя проект, где мастер СП270 и 2 ведомых - ПЧ (адрес 1) и Twido (адрес 2). В Twido в части интерфейса сконфигурирован в аппаратной части порт 1 под Модбас, адрес 2, ну и прочие - скорость, к-во бит, четность, таймаут... В программе единственное требование, чтобы было прописано слово с адресом старше, чем используется в обмене данными. Например %MW400 :=12 Это помимо присвоения MW400 слову определенного значения, еще и определяет массив используемой памяти слов от %MW0 до %MW400, которые доступны, в том числе, для обмена по интерфейсу. С битами (%М) в интерфейсе я, так уж сложилось, не работаю. В качестве битовых переменных использую биты слов, например %MW234:X12. Но полагаю, что массив используемых бит (хотя бы самый старший из используемых) также д.б. определен в программе. Больше ничего в Twido для использования в качестве ведомого не надо.

alexfly
13.07.2016, 11:00
Именно так и есть. Прописал в программе еще одно слово и все шикарно заработало. Очередная победа техники над здравым смыслом.
Подскажите еще, как в конфигураторе СП300 сделать трехбитный индикатор (чтобы каждому биту соответствовало свое состояние)?

petera
13.07.2016, 11:10
Именно так и есть. Прописал в программе еще одно слово и все шикарно заработало. Очередная победа техники над здравым смыслом.
Подскажите еще, как в конфигураторе СП300 сделать трехбитный индикатор (чтобы каждому биту соответствовало свое состояние)?

Биты - это отдельные PSB или разряды одного регистра PSW?

ЗЫ. Забыл, что у Вас панель мастер, по этому
Биты - это отдельные %M или разряды одного регистра %MW?

И что должно быть с индикатором если все три бита в "1"? Какие должны быть у них приоритеты?

alexfly
13.07.2016, 11:53
Не, все три бита в "1" не будут. В один момент времени в "1" может быть только один бит. Биты - это отдельные %M

petera
13.07.2016, 12:33
Не, все три бита в "1" не будут. В один момент времени в "1" может быть только один бит. Биты - это отдельные %M

Простейший вариант

https://www.youtube.com/watch?v=DIveTzNnc_o

Как настроить индикатор понятно из видео.
Как пользоваться
- открыть мой проект
- сохранить индикатор в библиотеке (выпадающее меню-->Сохранить в библиотеке)
- в любом проекте использовать кнопку "Библиотека изображений"
- найти то, что сохранили и вставить на экран

Могу сделать прямоугольный, если надо.

ЗЫ. Приоритет за старшим состоянием.

alexfly
13.07.2016, 13:40
Да, сделайте пожалуйста прямоугольный и, желательно, с возможностью нанесения текста.

petera
13.07.2016, 15:14
Да, сделайте пожалуйста прямоугольный и, желательно, с возможностью нанесения текста.
С текстом сделать я могу, но Вы не сможете редактировать текст.
По этому текст будем делать стандартными средствами.

https://www.youtube.com/watch?v=7G8XOGcbsQM

Евгений Кислов
13.07.2016, 15:19
Еще можно наложить три Индикатора друг на друга (выбрав для них в качестве изображения прямоугольники нужного цвета) и привязать к их битам видимости биты ПЛК. Не так круто, как уличная магия с использованием графических макросов, но все же.

petera
14.07.2016, 10:48
Еще можно наложить три Индикатора друг на друга (выбрав для них в качестве изображения прямоугольники нужного цвета) и привязать к их битам видимости биты ПЛК. Не так круто, как уличная магия с использованием графических макросов, но все же.

В этом случае проще обычный текст в рамке вместо лампы.

https://www.youtube.com/watch?v=t-VOUpYAizI

Евгений Кислов
14.07.2016, 10:56
Да, не спорю - при условии, что устраивает обычный покрашенный прямоугольник. Очевидно, что если "прямоугольник" является внешним графическим изображением, то этот вариант уже не подойдет.

alexfly
22.07.2016, 12:13
Следующий вопрос: как привязать кнопку перехода в другое окно к физическому входу контроллера?

Евгений Кислов
22.07.2016, 12:27
Следующий вопрос: как привязать кнопку перехода в другое окно к физическому входу контроллера?

Если я правильно понял, речь не о кнопке как таковой, а о функции переключения экранов.

Используйте элемент Функциональная область, режим Бит управления (к нему привязываете ваш физический вход), действие - Переход на экран.

alexfly
06.09.2016, 20:15
Коллеги, снова нужна ваша помощь: как из Twido передать на панель число с плавающей запятой? В ПЛК оно записывается в слово MF. В панели есть только MW и MD.
Спасибо.

petera
06.09.2016, 20:41
Коллеги, снова нужна ваша помощь: как из Twido передать на панель число с плавающей запятой? В ПЛК оно записывается в слово MF. В панели есть только MW и MD.
Спасибо.

В панели выбирать MD однозначно. Ну и формат данных для дисплея выбирать Float

Одинарные, двойные и слова с плавающей точкой хранятся в пространстве
данных в одной зоне памяти. Таким образом, слово с плавающей точкой %MFi
и двойное слово %MDi соответствуют словам одинарной длины %MWi и
%MWi+1 (слово %MWi содержит младшие значащие биты, слово %MWi+1
старшие значащие биты %MFi)
Т.е. например %MF0 соответствует %MD0 или %MW0 и %MW1.
26194
http://www.is-com.ru/files/modicon_tsx_twido_manual.pdf

ЗЫ.
Возможно придется поменять состояние галки "Переставить WORD в FLOAT"
26195
Или вкл. или выкл. Это уже по месту, т.к. порядок слов для Float не регламентирован стандартом Modbus, и каждый производитель ПЛК может делать как захочет.

alexfly
07.10.2016, 21:44
Вопрос такой: хотелось бы сделать таблицу тревог с отображением даты и времени события. Есть возможность это сделать инструментами СП310?

petera
07.10.2016, 22:17
Вопрос такой: хотелось бы сделать таблицу тревог с отображением даты и времени события. Есть возможность это сделать инструментами СП310?

Историческая таблица
26930

ЗЫ.
Как скрыть столбец "Квитирование" http://www.owen.ru/forum/showthread.php?t=16323&p=138535&viewfull=1#post138535

https://www.youtube.com/watch?v=K4TJvZMvHIA


https://www.youtube.com/watch?v=YntChmRT8sg