|
Проблемы с панелями Weintek Всё о багах панелей Weintek |
|
Опции темы | Поиск в этой теме |
21.03.2012, 11:00 | #1 |
Senior Member
Регистрация: Oct 2011
Сообщения: 184
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Wientek, 2Gi, Modbus и InputStatus
|
21.03.2012, 11:49 | #2 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
адресация по спецификации модбус
0XXXX - coils ( функция 1-читать, 5,15-писать) 1XXXX - input status ( функция 2-читать) 3XXXX - input reg ( функция 4-читать) 4XXXX - Holding reg ( функция 3-читать, 6,16-писать) так что все тама есть функции 15 и 16 мультипресет и еще - Holding register 40001 is addressed as register 0000 (из спецификации) тоесть нашу переменную HR по адресу 0000 нужно читать писать адресом 40001 input status с адреса 0070 из вашей карты читать адресом 10071 вашей программы наверно щас все должно быть понятна. |
21.03.2012, 17:04 | #3 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили:
21 раз(а) в 21 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Цитата:
либо упакуйте в переменные типа int и читайте при помощи 3х_bit и 4x_bit с указанием номера бита. |
|
24.07.2012, 14:41 | #4 |
Senior Member
Регистрация: Oct 2011
Сообщения: 184
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Вновь вопрос связанный с этой панелью.
Программа организована так, что с панели заводятся настройки объекта (температуры времена и т.п.) Связь панели и контроллера - Modbus TCP. Столкнулся с таким неприятным явлением как несохранение настроек, после вкл/выкл питания установки. Все значения Modbus переменных устанавливаются по умолчанию в значения введенные в он-лайн режиме из SMLogix... Пока решил проблему следующим образом: В панели каждому полю ввода/вывода можно задать разные адреса на чтение и на запись. В контроллере создаю эти 2 переменные - одну записываю в EEPROM из панели, другую из этой EEPROM читаю и показываю в панели... Работает, но как-бы очень геморно иметь 2 переменные вместо 1... Может кто подскажет более изящный способ? |
25.07.2012, 06:22 | #5 |
Senior Member
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Сталкивался с описаной проблемой. Панель использовалась в качестве диспетчерского пульта. Более простого решения, чем у вас придумать не получилось. А насчет гемора не согласен. Одна переменная показывает, что реально записано в контроллер, вторая, что вы пытаетесь записать в контроллер. С учетом того, что уставка может меняться и с клавиатуры самого контроллера, проще не сделаешь. Особенно если хочешь знать что реально записано в контроллере, а не то что вы пытаетесь туда записать. Минус такого решения некоторое запаздывание при смене уставки (записал, потом считал), но с этим смирился.
|
14.03.2014, 17:53 | #6 |
Новичок
Регистрация: Mar 2014
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Можно проект панели который читает слово из контроллера.
перепробывал все варианты, на читает и все |
17.03.2014, 12:10 | #7 |
Новичок
Регистрация: Mar 2014
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
|
15.08.2017, 16:26 | #8 |
Senior Member
Регистрация: Jun 2017
Сообщения: 161
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Добрый день! Также столкнулся с проблемой не сохранения уставок после отключения электропитания. Панель Weintek, контроллер 2Gi. Например в том же Codesys достаточно поставить галочку retain, и переменная становится энергонезависимой, и что самое главное читается и пишется по одному адресу. Вопрос в том можно ли в Лоджике сделать также?
Прочитал про две переменные для чтения и записи в Weintek, но чем и как лучше сохранять EEPROM или ARRAY? |
15.08.2017, 17:35 | #9 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 105
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Цитата:
Если вам сохранять, то нужен массив. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.08.2017, 19:02 | #10 |
Senior Member
Регистрация: Jun 2017
Сообщения: 161
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
|
16.08.2017, 11:42 | #11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 105
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Кодесис, когда вы ставите галочку, выставляет невидимый вам условный ARRAY(). Всё то же самое происходит с точки зрения контроллера: выделяется память, куда и происходит сохранение.
Создайте две переменные. Чтение одной переменной и запись другой переменной это ровно то же самое по трафику и задержкам, что чтение и запись одной и той же переменной. Это в любом случае чтение и в любом случае запись. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
16.08.2017, 12:16 | #12 | |
Senior Member
Регистрация: Jun 2017
Сообщения: 161
Благодарил(а): 3 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Цитата:
|
|
16.08.2017, 13:05 | #13 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 105
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Wientek, 2Gi, Modbus и InputStatus
Цитата:
Учитывая, что создание двух переменных в лоджике происходит раз в 10 быстрее, чем создание одной переменной в кодесисе, ваше предложение замедлить и усложнить процедуру не могу признать актуальным в нынешних условиях. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|