|
  |
Twido работа по Ethernet. Некорректная работа. |
|
|
|
18.12.2011, 6:42
|
Группа: New
Сообщений: 5
Регистрация: 10.5.2009
Пользователь №: 33300

|
Есть 4 контроллера Twido TWDLCAE40DRF. Соединены по ethernet. TW1 модулей нет TW2 7 модулей TWDAMI8HT, по 8 аналоговых входов каждый. TW3 7 модулей TWDAVO2HT, по 2 аналоговых выхода каждый TW4 1 модуль TWDAVO2HT на 2 аналоговых выхода, 2 модуля TWDAMI8HT по 8 аналоговых входов.
Аналоговые входы - считывание параметров с термодатчиков и датчиков давления(72 параметра), аналоговые выходы - управление задвижки (16 задвижек данфосс). При работе через OPC сервер все работает как надо. Входы считываются, выходы записываются. Крутится программка, которая через OPC считывает параметры, обрабатывает, пишет на выходы, все хоккей. Однако требуется вынести всю логику на контроллер TW1 и возникла проблема. Всё (на мастер контроллере прописаны IP слейвов, макросы Comm и Symbol заполнены) сделано по букварю (TWIDO S1062 Version A). Однако команды записи C-WRNW и C_WR1W не работают вообще, команды чтения C_RDNW и C_RD1W работают, но только в отношении одного контроллера, первого в тексте программы. Т.е. в программе прописано обращение ко всем контроллерам, а обмен идет только с первым, и только на чтение. Кто сталкивался с аналогичной проблемой, помогите! Если можно, примерами!
|
|
|
|
|
18.12.2011, 13:00
|
Группа: New
Сообщений: 5
Регистрация: 10.5.2009
Пользователь №: 33300

|
LD 1 [ C_WR1W_ADDR_1 := 100 ] [ C_WR1W_VAL_1 := 100 ] [ C_WR1W 1 ] LD 1 [ C_WR1W_ADDR_2 := 310 ] [ C_WR1W_VAL_2 := 10 ] [ C_WR1W 2 ]
Первая команда выполняется, вторая нет. Тоже со чтением. Т.е. контроллер работает только с одним раб-контроллером. ЗЫ: как писать - разобрался. Только обращение происходит к одному контроллеру. И может выполнятся только одна операция. Или запись, или чтение. Только с одного контроллера. ОРС читает-пишет ок.
Сообщение отредактировал Alex_Doctor - 18.12.2011, 13:04
|
|
|
|
|
18.12.2011, 19:14
|
Группа: New
Сообщений: 5
Регистрация: 10.5.2009
Пользователь №: 33300

|
Использовал временную задержку между командами, все заработало. Оказывается, одновременно несколько сетевых команд не работают.
|
|
|
|
|
18.12.2011, 21:46
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Лучше уж пользоваться EXCH3, там хоть непоняток меньше будет и оптимизировать проще. Я как-то честно говоря до конца не понимаю, что в этих макросных делах такого ценного? Все равно за всем следить надо, и память выделять и еще з бубенцами танцевать. Это как делать свою прогу на базе существущей чужой. В конце концов все-равно все переписываешь.
|
|
|
|
|
18.12.2011, 22:29
|
Группа: New
Сообщений: 19
Регистрация: 17.9.2009
Пользователь №: 38580

|
Попробуйте каждую следующую операцию чтения/записи блокировать битом активности блока EXCH3 (по сути он используется в макросе). Синтаксис бита активности - %MSG3.D. Бит во взведенном состоянии если нет активных операций у блока EXCH3.
|
|
|
|
|
19.12.2011, 12:23
|
Группа: New
Сообщений: 5
Регистрация: 10.5.2009
Пользователь №: 33300

|
Спасиб! EXCH дольше, но удобнее настраивать.
|
|
|
|
|
15.2.2012, 11:22
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
Цитата(Alex_Doctor @ 18.12.2011, 9:42)  сделано по букварю (TWIDO S1062 Version A) Подскажите где взять такой букварь?
|
|
|
|
|
5.5.2013, 0:10
|
Группа: New
Сообщений: 13
Регистрация: 19.11.2009
Пользователь №: 41008

|
Да букварь бы непомешал, вечно для твидо мало инфы...а возможностей у ПЛК много
|
|
|
|
|
6.5.2013, 11:15
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
У меня получилось, только без букваря, и на макросы забил. Без них получается больше передовать. Когда разберёшся, кажется всё просто, а когда не идет, готов производителей извести со света, наши ответить толком не могут (не всегда, на кого нарвешься), а буржуины только на английском или на французком. Кстати и с панелями беда, программы работают только под win32 где они берут такие буки? Пришлось перейти на руские панели. Хотя возможностей сильно не хватает, но зато дешевле...
|
|
|
|
|
6.5.2013, 14:00
|
Группа: New
Сообщений: 13
Регистрация: 19.11.2009
Пользователь №: 41008

|
Такаяже беда, правда Win32 стоит и с панелями проблем нет (монохромными), а вот как работают макросы никак не догоняю...
|
|
|
|
|
9.8.2013, 13:58
|
Группа: New
Сообщений: 16
Регистрация: 7.9.2010
Из: Минск
Пользователь №: 71096

|
Цитата(Telemu @ 6.5.2013, 11:15)  У меня получилось, только без букваря, и на макросы забил. Без них получается больше передовать. Когда разберёшся, кажется всё просто, а когда не идет, готов производителей извести со света, наши ответить толком не могут (не всегда, на кого нарвешься), а буржуины только на английском или на французком. Кстати и с панелями беда, программы работают только под win32 где они берут такие буки? Пришлось перейти на руские панели. Хотя возможностей сильно не хватает, но зато дешевле... Могли бы выслать пример связи двух twido по Ethernet (port3) с использованием EXCH3? disaster2005(собака)mail.ru Спасибо.
|
|
|
|
|
9.8.2013, 14:34
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
В конфигурации присвойте IP например в 1 twido 192.168.1.101 а во вторм 192.168.1.102, и укажите их адреса в качестве слейва наоборот - это связь на прямую, одним кабелем ethernet. Если надо несколько чере комутатор, то всё как обычно...
|
|
|
|
|
9.8.2013, 14:43
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
Два пакета по 16 слов и 16 бит, во втором twido точно также. Установлено сразу передача и чтение.
|
|
|
|
|
9.8.2013, 15:24
|
Группа: Участники форума
Сообщений: 77
Регистрация: 17.7.2013
Из: Россия
Пользователь №: 199317

|
Цитата(Alex_Doctor @ 18.12.2011, 7:42)  Есть 4 контроллера Twido TWDLCAE40DRF. Соединены по ethernet. TW1 модулей нет TW2 7 модулей TWDAMI8HT, по 8 аналоговых входов каждый. TW3 7 модулей TWDAVO2HT, по 2 аналоговых выхода каждый TW4 1 модуль TWDAVO2HT на 2 аналоговых выхода, 2 модуля TWDAMI8HT по 8 аналоговых входов.
Аналоговые входы - считывание параметров с термодатчиков и датчиков давления(72 параметра), аналоговые выходы - управление задвижки (16 задвижек данфосс). При работе через OPC сервер все работает как надо. Входы считываются, выходы записываются. Крутится программка, которая через OPC считывает параметры, обрабатывает, пишет на выходы, все хоккей. Однако требуется вынести всю логику на контроллер TW1 и возникла проблема. Всё (на мастер контроллере прописаны IP слейвов, макросы Comm и Symbol заполнены) сделано по букварю (TWIDO S1062 Version A). Однако команды записи C-WRNW и C_WR1W не работают вообще, команды чтения C_RDNW и C_RD1W работают, но только в отношении одного контроллера, первого в тексте программы. Т.е. в программе прописано обращение ко всем контроллерам, а обмен идет только с первым, и только на чтение. Кто сталкивался с аналогичной проблемой, помогите! Если можно, примерами! Описание проблемы и саму программу присылайте в тех.поддержку: ru.ccc@schneider-electric.com Обязательно помогут.
|
|
|
|
|
11.8.2013, 3:53
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
ИМХО макросы, для не сильно вникших - на самом деле научится ими управлять, тоже самое, что получить зваание магистра тёмных энергий... Хотя я частотниками, по началу управлял через макросы....
|
|
|
|
|
13.8.2013, 17:01
|
Группа: New
Сообщений: 16
Регистрация: 7.9.2010
Из: Минск
Пользователь №: 71096

|
Цитата(Telemu @ 9.8.2013, 14:34)  В конфигурации присвойте IP например в 1 twido 192.168.1.101 а во вторм 192.168.1.102, и укажите их адреса в качестве слейва наоборот - это связь на прямую, одним кабелем ethernet. Какая часть программы на чтение, какая на запись? и там и там тадлица одинакова, отличаються только "%MW3 := 64" и "%MW27 := 81" и что эти цифры означают? Цитата(Telemu @ 9.8.2013, 14:34)  Если надо несколько чере комутатор, то всё как обычно... а как обычно?
|
|
|
|
|
14.8.2013, 16:07
|
Группа: New
Сообщений: 16
Регистрация: 7.9.2010
Из: Минск
Пользователь №: 71096

|
На самом деле, функция EXCH3 гораздо приятнее вплане модернизаций, да и опыт формирования таблиц для ModBus-RS485 пригодиться. Тот пример, что выложил Telemu не отражает всей картины, да и таблица вторая настроена на чтение (хоть утверждаеться что на запись) Если кому нужно срочно, то могу выложить проект подключения двух Twido по TCP/IP (master --> read/write --> slave), впринципе даже не важно по средствам какой сети будет осуществляться связь, изменения минимальны, суть одна. Когда закончу проект выложу подробное рукаводство по настройке связи.
|
|
|
|
|
15.8.2013, 15:39
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
|
|
|
|
|
15.8.2013, 21:16
|
Группа: New
Сообщений: 16
Регистрация: 7.9.2010
Из: Минск
Пользователь №: 71096

|
Цитата(Telemu @ 15.8.2013, 15:39)  Эта сылка обязана быть у каждого кто хоть как то относится к передаче данных. Но ваш пост странен, мне эта ссылка не нужна, и я даже отписался что выложу не обрывки инфы, а все целиком. Не понятно зачем тут ваша ссылка.
|
|
|
|
|
15.8.2013, 23:59
|
Группа: Участники форума
Сообщений: 20
Регистрация: 23.6.2011
Из: Екатеринбург
Пользователь №: 112971

|
Изначально вы просили пример я выложил рабочий а не теоретический... это до сих пор работает... попытаюсь ответить Цитата(disaster2005 @ 13.8.2013, 20:01)  Какая часть программы на чтение, какая на запись? и там и там тадлица одинакова, отличаються только "%MW3 := 64" и "%MW27 := 81" и что эти цифры означают?
а как обычно? я же писал что два пакета если читали по ссылке то там полная расшифровка, из которой мы выдим что старший бит %MW0 установлен 01,что соответствует приему+передаче, это там написано (для справки 0 только передача, 2 только прием). далее MW3 := 64 это адрес отправляемых данных, MW4:=17 длина, тоже самое во второй части... принимаются сообщения в адреса, первый пакет %MW7, второй в %MW32... да также как дома компьютеры объеденяются в сеть
|
|
|
|
|
16.8.2013, 8:50
|
Группа: New
Сообщений: 16
Регистрация: 7.9.2010
Из: Минск
Пользователь №: 71096

|
Таблица записи 3-х слов: %MW0 := 16#010E - (01 - всегда 01 = чтение/запись для получения ответа от ведомого что все принято) и (0E = 8 + 2*3слова) %MW1 := 16#0007 - (смещение в передаче 7й байт) %MW2 := 16#0110 - (01 - адрес устройства, если связь по TCP/IP то это индекс в колонке слева от IP адреса ведомого что указывается в настройках) и (10 - код запроса для записи) %MW3 := 10 - запись начнеться с 10-го слова в слейве %MW4 := 3 - будет записано 3 слова (следовательно в %MW10, %MW11, %MW12) при этом в слейве нужно прописать %MW13 := 16#FFFF для выделения памяти. %MW5 := 6 - твидо не может посчитать самостоятельно, поетому нужно указать число байт (количество слов * 2) %MW6 := var1 --> %MW10 (slave) %MW7 := var2 --> %MW11 (slave) %MW8 := var3 --> %MW12 (slave) теперь то, ради чего указывалось 01 - Ответ от ведомого: %MW9 := 'адрес ведомого' и 'код отклика' %MW10 := 'номер первого записанного слова' %MW11 := 'число записанных слов' т.к. в итоге в таблице вышло 12 слов, посылку формируем как [EXCH3 %MW0:12] Для связи по TCP/IP необходимо в Describe указать: - для ведущего - IP адрес, маску, основной шлюз (вымышленный), IP адреса ведомых - для ведомых - IP адрес, туже маску, тотже шлюз, все. Telemu, сходство с Вашей таблицей только в первом байте И конечно нужно при себе иметь всегда эту ссылку https://sites.google.com/site/fieldbusbook/...s-rtu-ascii-rus
|
|
|
|
|
21.8.2013, 11:01
|
Группа: Участники форума
Сообщений: 26
Регистрация: 21.8.2013
Пользователь №: 202919

|
Цитата(Alex_Doctor @ 18.12.2011, 7:42)  Есть 4 контроллера Twido TWDLCAE40DRF. Соединены по ethernet. TW1 модулей нет TW2 7 модулей TWDAMI8HT, по 8 аналоговых входов каждый. TW3 7 модулей TWDAVO2HT, по 2 аналоговых выхода каждый TW4 1 модуль TWDAVO2HT на 2 аналоговых выхода, 2 модуля TWDAMI8HT по 8 аналоговых входов.
Аналоговые входы - считывание параметров с термодатчиков и датчиков давления(72 параметра), аналоговые выходы - управление задвижки (16 задвижек данфосс). При работе через OPC сервер все работает как надо. Входы считываются, выходы записываются. Крутится программка, которая через OPC считывает параметры, обрабатывает, пишет на выходы, все хоккей. Однако требуется вынести всю логику на контроллер TW1 и возникла проблема. Всё (на мастер контроллере прописаны IP слейвов, макросы Comm и Symbol заполнены) сделано по букварю (TWIDO S1062 Version A). Однако команды записи C-WRNW и C_WR1W не работают вообще, команды чтения C_RDNW и C_RD1W работают, но только в отношении одного контроллера, первого в тексте программы. Т.е. в программе прописано обращение ко всем контроллерам, а обмен идет только с первым, и только на чтение. Кто сталкивался с аналогичной проблемой, помогите! Если можно, примерами! Это распространённая ошибка программирования функций обращений чтения/записи по Modbus для контроллеров Twido. Необходимо пояснить принцип работы контроллера... Контроллер выполняет программу циклически (создание образа состояния входов - обработка логики программы пользователя - создание образа состояния выходов). Время цикла может быть порядка 10 мс. В тоже время, инструкция EXCH запускает процесс связи в коммуникационном модуле. Полная обработка данной процедуры может длиться несколько циклов контроллеров. Каждый раз, когда идёт обработка логики пользовательской команды выполняется первая инструкция EXCH и соответсвующий порт контроллера остаётся занят этой операцией на несколько циклов контроллера. После того как он освободится, опять занимается первой инструкцией EXCH и так далее. До последующих EXCH инструкций он никогда не дойдет. К сожалению, в существующих примерах Шнейдер в качестве инициализации выполнения EXCH инструкции использует логические входа контроллера (по фронту!!!) и нет примеров реальной обработки slave устройств. Можно только получить пример такой программы в техподдержки SE. EXCH1 - инструкция для порта 1 (порт программирования) EXCH2 - инструкция для порта 2 (опционный порт) EXCH3 - инструкция для встроенного Ethernet порта контроллеров компактной 40 серии. Макросы основаны на инструкциях EXCH, фактически это некая подпрограмма написанная на основе EXCH. Эту программу можно легко посмотреть, щёлкнув правой кнопкой мыши на блоке макроса в теле программы. Разницы в написании вообщем нет, нужна аккуратность и не более. Как организовать программу. Один из способов, это организовать в программе циклический перебор выполняемого макроса или EXCH инструкции. Обязательно присутствие бита состояния порта MSGD (вроде). Который собственно и запускает выполнение EXCH инструкции. Если количество slave устройств много, то рекомендую предусмотреть вариант исключения отключившегося slave устройства по таймауту. Это ускорит взаимообмен. По конкретно задаче. Скорее всего то не подойдет из за ограничений, но стоит напомнить, что в Twido есть возможность организовать взаимообмен между контроллерами в режиме Remote Link. Один из режимов, когда контроллеры равноправные с собственными программами и обмениваются между собой 4 словами на передачу и 4 словами на приём. Можно объеденить до 7 контроллеров на расстоянии до 200 метров.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqvMjLF8
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqxXgvJi
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqwyM2dc
Последние сообщения Форума
|