PDA

Просмотр полной версии : Проблема с МДВВ



Юрий(!)
23.01.2008, 15:01
Добрый день, В проекте с использованием ПЛК 100 и двух МВА возникла необходимость дополнительных дискретных входов-выходов, мы приобрели МДВВ,настроили его в конфигураторе, подключили к ПЛК 100 по Modbus с использованием готового шаблона МДВВ, но совершенно непонятно что делать с ним дальше, помогите пожалуйста. Выходы нужны для работы в On-Off режиме, НЕ ШИМ!!! для комутации управляющих цепей насосных групп, входы для контроля, по датчику потока ДЭМ.

Gans
23.01.2008, 15:45
В инструкции на МДВВ всё есть! Правда в первых версиях МДВВ не работал по модбас-рту

5.1.2. Работа по протоколу ModBus
Работа по протоколу ModBus может идти в режимах ASCII или RTU, в зависимости от заданного значения параметра Prot.
Скважность ШИМ записывается в регистры, соответствующие каждому из дискретных ВЭ. Запись осуществляется командой 16 (0x10), чтение – командами 3 (0x03) или 4 (0x04). Список регистров протокола ModBus приведен в Приложении В (таблица В4).
Посылка групповой команды включения/выключения ВЭ осуществляется в регистр с номером 50 (0x32). В регистр записывается значение от 0 до 255, каждый бит значения соответствует состоянию дискретного ВЭ прибора. Единичное значение бита соответствует состоянию «Включено» для ВЭ.
-------------------------------------------------------------------
№ бита | 15-8 | 7-0 |
-------------------------------------------------------------------
значение |всегда равны 0 | состояние выходов с 8 до 1 |

Юрий(!)
23.01.2008, 16:14
Gans большое вам спасибо, я разобрался как работать с дискретными выходами, а вот со входами непонятно, куда вставить переменную и как ее прочитать?

Малышев Олег
23.01.2008, 18:57
Аналогично - регистр 51, параметр output

Юрий(!)
24.01.2008, 11:01
При считывании регистра 51 появляются значения 2 в степени n в десятичной форме, тоесть первому входу соответствует
1 - 1
2 - 2
3 - 4
4 - 8
12-2048
если использовать одновременно только один вход то понятно, а если несколько то происходит сложение например используя одновременно 1и3 вход получаю значение регистра равного 5.

Gans
24.01.2008, 11:24
При считывании регистра 51 появляются значения 2 в степени n в десятичной форме, тоесть первому входу соответствует
1 - 1
2 - 2
3 - 4
4 - 8
12-2048
если использовать одновременно только один вход то понятно, а если несколько то происходит сложение например используя одновременно 1и3 вход получаю значение регистра равного 5.
Вообще то правильно использовать функцию PACK из библиотеки util.lib Там еще посмтотри PUTBIT. Посмотри вот мой конфиг.
P. S. Удачи!

Юрий(!)
24.01.2008, 11:42
Ура!!! еще раз спосибо Вам Gans, использовав ФБ Unpack все получилось.

Юрий(!)
24.01.2008, 16:10
У меня возник вопрос, при использовании ФБ Unpack получается 8 входов а как быть еще с 4.

Gans
24.01.2008, 16:29
У меня возник вопрос, при использовании ФБ Unpack получается 8 входов а как быть еще с 4.
Так надо найти только старший байт.
Например:
Значение регистра разделить на 256 и получим значение старшего байта а потом преобразуем значение в переменную типа байт. Примерно это можно реализовать вот так:

PROGRAM PLC_PRG
VAR
Answer: BYTE;
Input: UINT; (*Это значение регистра из ПЛК-конфигуратора*)
END_VAR

Answer:=UINT_TO_BYTE (Input/256);
Answer - это и есть байт содержаший состояние оставшихся входов далее UNPACK.

Kirill
24.01.2008, 17:48
У меня возник вопрос, при использовании ФБ Unpack получается 8 входов а как быть еще с 4.

Воспользуйтесь ФБ из прилагаемой библиотеки, там все уже разобрано по битам.

312

Юрий(!)
25.01.2008, 08:34
Огромное спасибо за предоставленную библиотеку и консультации!!!:)

RiddleR
29.01.2008, 12:48
У меня попутный вопрос по теме (МДВВ, MODBUS RTU): а разве нельзя считывать состояние входов и задавать состояние выходов отдельно по битам. Т.е. есть у нас входной и выходной регистры, допустим, Input : WORD и Output: WORD, Мне нужно получить состояние входов №№0, 4, 6 и подать 1 на выходs №3, 4- я делаю так:

IBit0, IBit4, IBit6 : BOOL;
IBit0 := Input.0;
IBit4 := Input.4;
IBit6 := Input.6;

Output.3 := 1;
Output.4 := 1;

Это не правильно? Так вообще можно работать, с отдельными битами?

Филоненко Владислав
29.01.2008, 14:45
Если говорить об обмене, то работа по битам возможна, но в 8 раз медленнее. Это Вам надо?
А в программе ПЛК можно вытворять всё что угодно, в т.ч. и обращаться к битам или накладывать маски.
С точки зрения быстродействия если нужно обработать 1 бит - работайте с ним, если группу - используйте маску.

kimcomnet
21.03.2008, 09:13
Помогите настроить выходы в МДВВ. Подключил ПЛК100К-М и МДВВ, на входы реакция есть а выходы не реагируют. Программу написал простейшую на CFC. Что мне нужно сделать?

незарегистрированный
21.03.2008, 11:20
для включения реле присвойте соответствующему выходу МДВВ значение равное 1000 для отключения присвойте 0
Проще это можно реализовать используя ФБ "SELECT"
там 3 входа 1 дискретный и 2 числовых и один дискретный выход,
к выходу блока привяжите переменную МДВВ, 2му входу присвойте 0 а 3му 1000 и в зависимости от состояния 1 входа ФБ SELECT реле будет принимать соответствующее значение 0 или 1

Kirill
21.03.2008, 16:36
Помогите настроить выходы в МДВВ. Подключил ПЛК100К-М и МДВВ, на входы реакция есть а выходы не реагируют. Программу написал простейшую на CFC. Что мне нужно сделать?

в вашей программе дважды определены переменные q1, q2, q3. Либо задавайте имена выходам непосредственно в plc configuration, либо используйте адресацию %QD ... при определении переменных в программе plc_prg. Только один из вариантов, а не оба сразу. См. пример.

413

kimcomnet
24.03.2008, 09:48
Вообще-то, проблема не в том, как определены переменные, а в том, что при определении в plc_prg:
q2 AT %QD9.1.0: BOOL;
q3 AT %QD9.2.0: BOOL;
q4 AT %QD9.3.0: BOOL;

а в plc configuration:
AT %QD9.1.0: REAL;...
AT %QD9.2.0: REAL;...
AT %QD9.3.0: REAL;...
и в этоге: 1. в "plc_prg" я запускаю SA1, а в "plc configuration" в место "0" появляется число 1.401298е-045, а реле на МДВВ не включился.
2. в "plc configuration" в место "0" ставлю "1" и реле в МДВВ включаются.
Итог: в ручном режиме включаются , а программно нет. Мне кажется это из-за REAL и BOOL

Kirill
24.03.2008, 17:09
Вообще-то, проблема не в том, как определены переменные, а в том, что при определении в plc_prg:
q2 AT %QD9.1.0: BOOL;
q3 AT %QD9.2.0: BOOL;
q4 AT %QD9.3.0: BOOL;

а в plc configuration:
AT %QD9.1.0: REAL;...
AT %QD9.2.0: REAL;...
AT %QD9.3.0: REAL;...
и в этоге: 1. в "plc_prg" я запускаю SA1, а в "plc configuration" в место "0" появляется число 1.401298е-045, а реле на МДВВ не включился.
2. в "plc configuration" в место "0" ставлю "1" и реле в МДВВ включаются.
Итог: в ручном режиме включаются , а программно нет. Мне кажется это из-за REAL и BOOL

Это исключительно из-за того, что переменные определены дважды. И пока это так, программа корректно работать у вас не будет.

kimcomnet
25.03.2008, 11:27
К сожалению, я непонимаю, какие переменные у меня определены дважды. А, если возможно, то можно ли исправить в проекте, чтоб было наглядно видно.

Kirill
25.03.2008, 12:22
К сожалению, я непонимаю, какие переменные у меня определены дважды. А, если возможно, то можно ли исправить в проекте, чтоб было наглядно видно.

В plc configuration необходимо убрать имена переменных q1, q2 ,q3 ,q4, оставить только объявления в программе (между var и end_var). Также там необходимо определять переменные q2, q3, q4 типа real, тк передается в модуль именно значение типа real. Для преобразования булевой величины в real используются фб преобразований bool_to_real (см. программу plc prg).

422

Сергей71
08.04.2008, 22:12
У меня МДВВ v 1.08. Через какое то время вкл. и выкл. реле №1.
В чем проблема.

Филоненко Владислав
09.04.2008, 10:36
Проект и настройки МДВВ в студию

Сергей71
09.04.2008, 13:12
Проект положил.

Филоненко Владислав
09.04.2008, 18:30
Перед тем, как выкладывать файл настроек МДВВ - считайте всё дерево параметров

Филоненко Владислав
09.04.2008, 18:31
А если остановить программу ПЛК - реле шёлкать будет?

Сергей71
10.04.2008, 08:51
Если остановить не щелкает.

Переод неизвестен. Может через 1-2 минуты, или 20 и более минут.

Бывает щелкнет при записи измененного проекта.

Попробую удалить модбас мастер и поставить слайв (с панелями не получается, оставлю две панели мастер).

Филоненко Владислав
10.04.2008, 10:05
Если при остановленной программе не щёлкает - скорее всего ошибка в программе, т.к. мастера не имеют информации о работе программы ПЛК и тупо посылают те данные, к-е Вы выставляете в их выходных переменных.

Сергей71
10.04.2008, 11:06
МДВВ работает по DCON.
В программе ничего нет (почти пустая).
Переменной для управления реле МДВВ нет, толко объявленная в DCON Masterе.

Удалил модбас мастер и поставил слайв.

Пару часов работы вроде нормально.
Пусть работает дальше - посмотрим.

Спасибо.

Назаров Александр
10.04.2008, 17:15
У меня были похожие проблемы с МДВВ версии 1.05. на протоколе DCON. Очень долго пытался доказать Овеновцам, что это проблемы прошивки МДВВ на выше указанном протоколе.(самопроизвольное выключение и обратное включение реле,~0.1-1c.). Поборол только сменой протокола на ModBus. Причем только RTU, так как ASCCI тоже глючит.:)

Сергей71
11.04.2008, 13:35
Тогда выкину из проекта реле №1 (плохо).
Очень редко но вкл. и выкл.
Попробую вкл. все реле и посмотреть на выкл.

Назаров Александр
11.04.2008, 15:28
Происходит это только при включенном выходе, т.е. кратковременное отключение и восстановление единичного сигнала. Причем изменения данных программа не ведет. На мой взгляд это баг перевода выходных элементов в безопасное состояние при пропаже связи.

Сергей71
11.04.2008, 17:38
На мой взгляд это баг перевода выходных элементов в безопасное состояние при пропаже связи.
Но у меня в конфигурации безопасное состояние выкл., ПЛК по DCON передает 0х00, а реле №1 очень редко вкл.
Причем чем больше пишу прект (добавляя разные куски программы), реле все реже и реже щелкает (один раз за полдня что-то).

Но я когда-то писал на форуме что связь по DCON у них не хорошая, часто приходят ошибки, но мне сказали что это только уменя. Но они как были так и остались. Для проверки я подключался к линии через терминал и смотрел посылки. Все посылки верные. Я думал что порт в ПЛК косячный, написал свой опрос через UNM, за весь день ни одной не верной посылки ПЛК не обнаружил. (В UNM была проверка и на качество принимаемого байта - смотрел флаги при получении)

Поэтому мой вывод, что у них модули общения в режиме ASCII - с ошибками, которые они не видят или не хотят признавать.

Назаров Александр
11.04.2008, 20:41
C включением проблем не было, хотя безопасное состояние тоже 0. С декабря месяца все перевел на ModBus RTU - от заказчика нареканий нет. Поэтому не парься с Dcon ом.

Филоненко Владислав
11.04.2008, 23:25
Но у меня в конфигурации безопасное состояние выкл., ПЛК по DCON передает 0х00, а реле №1 очень редко вкл.
Причем чем больше пишу прект (добавляя разные куски программы), реле все реже и реже щелкает (один раз за полдня что-то).

Но я когда-то писал на форуме что связь по DCON у них не хорошая, часто приходят ошибки, но мне сказали что это только уменя. Но они как были так и остались. Для проверки я подключался к линии через терминал и смотрел посылки. Все посылки верные. Я думал что порт в ПЛК косячный, написал свой опрос через UNM, за весь день ни одной не верной посылки ПЛК не обнаружил. (В UNM была проверка и на качество принимаемого байта - смотрел флаги при получении)

Поэтому мой вывод, что у них модули общения в режиме ASCII - с ошибками, которые они не видят или не хотят признавать.

А не могут ли это быть какие-либо сильные помехи со стороны?

Назаров Александр
12.04.2008, 13:05
Такая ситуация была на объекте (4 шкафа разнесенных по этажам административного здания) на всех контроллерах, вернее МДВВ. Для выявления причин, дома была создана простейшая конструкция с ПЛК и модулем МДВВ. Причем Программа нулевая, т.е PLC_PRG - ";" и модуль обмена по DCON с одним передаваемым значением. И периодически (не через равные промежутки времени) выхода МДВВ (реле) обнуляются и восстанавливаются. Т.е. это не от помех, а так ... маленькая недоделка МДВВ. Я думаю, что эта тема не поднималась в форуме только потому, что с DCON никто не работал.:p

Сергей71
14.04.2008, 13:28
Помехи исключены - оффисное помещение, длина несколко сантиметров (и метров с резисторами не играет роли).

От DCON отказаться не могу у меня приборы опроса тензодатчиков ICPDAS, порты у ПЛК под завязку. Пробовал на один порт (485) повесить два мастера (DCON RTU) - ПЛК не работал.

Про МДВВ:

сейчас висит два 7016 и один МДВВ, С которого читаем входа пишем выхода и читаем два счетчика №2 и №3. Проверяю ошибки и увеличиваю счетчик на 1 если ошибок нет сбрасываю счетчик (у каждой переменной свой счетчик ошибок), так вот у 7016 максимально счетчик зашкаливал за 5, часто 2-3, а у МДВВ было и 10 и 20 и 30 больше не видел. Номера всех ошибок 67 (не разобрал ответа). Период ошибок 65535 мсек.

Уважаемые разработчики, просьба тщательно протестируйте протокол DCON и блок МДВВ. Сделайте опрос и каждые n-мсек рисуйте график состояния, код состояния почти всегда 3 (данные пришли) или 2 (данные ушли) и Вы обязательно увидите 67 или 81(может нет). А выход реле №1 подайте на вход, и есле не услышете, то счетчик увидит хаотичное вкл. реле (можно время измерить). У меня за 8 часов до 46 досчитал.

Спасибо, если дождусь ответа.

Филоненко Владислав
14.04.2008, 15:52
Уже 6 часов так стоит. Ни одного щелчка... А на ручное замыкание регирует...
Тестовый проектик не пришлёте с указанием прошивки МДВВ. И всех параметров в МДВВ (не забудьте их считать перед записью файла).

А с ошибками связи - некий процент допустим.
P.S. А в офисном помещении помехи так-же возможны. Сварочный аппарат обладает радиусом поражения до 1 км. :)

Филоненко Владислав
15.04.2008, 09:02
1,5 суток без сбоев. И с 1 и с 0 на выходе - не щёлкает.
Проблема явно где-то ещё. Какая у Вас прошивка МДВВ?

Сергей71
15.04.2008, 14:00
В этой ветке писал 1.8.
На мыло вышлю все что есть по проекту.
Укажите адрес.

Филоненко Владислав
15.04.2008, 15:39
plc_prog@owen.ru

Сергей71
15.04.2008, 15:50
Отправил. Очень жду ответа.
Заранее спасибо.

Филоненко Владислав
15.04.2008, 18:11
не ранее четверга :(

Филоненко Владислав
16.04.2008, 15:23
Почта умерла.

Добрый день, Сергей!
Для DCON - "Good response" >[+], т.е надо проверять CRC [2H] - H большое.
Зачем посылаете дважды запрос "#01[+]"?
И главное, зачем каждые 100 мс обнулять счётчики входов? Потенциально (это я перестраховаваюсь) эта операция может притормаживать прибор и будет временный сбой.
Если Вам нужна скорость - считайте разницу между 2 значениями счётчиков - как правильнее, импульсы, пришедшие в момент обнуления, не потеряются.

Так и не понял, какие значения Вы установили для выходов (период ШИМ и безопасное значение). В присланном файле их нет.


Уменьшение таймаута ожидания связи не приводит к увеличению числа ошибок?

И по схеме - земля и -24 - соединять их - ухудшать гальваническую развязку и помехоустойчивость.
Надеюсь проблему найдём.
С уважением, Филоненко Владислав
P.S. Стенд еще не щёлкал. Прилагаю свою тестовую программку.

Сергей71
16.04.2008, 22:31
Для DCON - "Good response" >[+], т.е надо проверять CRC [2H] - H большое
Наверно можно не проверять. Не понял "проверять CRC [2H] - H большое"


Зачем посылаете дважды запрос "#01[+]"?
Там будет #02 - второй прибор, а на столе один (чтобы не было ошибок).


И главное, зачем каждые 100 мс обнулять счётчики входов?
Обнуляю не каждые 100 мс, а по команде по необходимости. За идею спасибо релизую.


Так и не понял, какие значения Вы установили для выходов (период ШИМ и безопасное значение). В присланном файле их нет..
Открыл настройки без прибора, точно нет данных. Производил сброс на заводские уставки, потом изменил и полная запись всех настроек. Потом сохранил и отправил Вам. ШИМ не менял, безопасное значение выкл., по всем входам вкл. фильтр. Безопасное значение работает.


Уменьшение таймаута ожидания связи не приводит к увеличению числа ошибок?
Сильно не баловался в пределах 20-100мс. Ошибки есть, а число не считал. Попробую увеличить.


И по схеме - земля и -24 - соединять их - ухудшать гальваническую развязку и помехоустойчивость.

Соеденения нет, если есть то это ошибка. (на каком листе? GND - это -24)


Спасибо.

ЗЫ Сейчас тестирую модуль VALVE_REG_NO_POS из Вашей библиотеки. Есть вопросы. Потом напишу.

Tohins
17.04.2008, 15:37
Воспользуйтесь ФБ из прилагаемой библиотеки, там все уже разобрано по битам.

312 (mdvv_input_extr.rar)

как этой библиотекой пользоваться в функиональных блоках?
хотелось бы посмотреть как это работает если PLC_PRG пишется в ST, а функиональный блок создается в FBD

Kirill
18.04.2008, 11:32
как этой библиотекой пользоваться в функиональных блоках?
хотелось бы посмотреть как это работает если PLC_PRG пишется в ST, а функиональный блок создается в FBD

Пример работы с библиотекой на языке ST.

Нужный таргет-файл внутри архива.


471

Сергей71
18.04.2008, 13:56
Прилагаю свою тестовую программку.

Перешил ПЛК

PLCInfo
PLC model MODEL PLC 100
Binary VERSION 2.03.0
Need Target version 2.02
Compiled: 12:41:32 Dec 26 2007
MAC 67:77:00:16:88:14
IP 192.168.0.21
GATE 192.168.0.21
MASK 255.255.255.0
Licence unlimited
No DAC
PIC version is 09

Target стоит:
hardware.cfg
;Version 2.02-3
;Recommended for versions: 2.02, 2.02-1, 2.02-2

Запустил Ваш тест - реле щелкает.

Ошибки есть период не смотрел (уже надоело бороться с привидениями)

Подскажите что еще можно посмотреть, изменить.

Радик
27.05.2008, 10:11
Про самопроизвольное включение выхода.
Три свежих модуля МДВВ(версия 1.08 – с быстрой реакцией на групповые команды) с адресами 16, 32 и 48 + ПЛК-100КМ.
Протокол DCON, контрольная сумма, 9600, 8 бит, 1 стоп, без проверки, время опроса 100 мсек. Иногда кратковременно включается выход 1 модуля А2(адрес 16). Может такое же было и на других модулях, но мы их не контролировали. Проект ver2_dcon_4.rar.
Этот выход завели на вход 2 этого же прибора и записали обмен на линии во время срабатывания выхода. Видно что команды на включение выхода нет. файл - обменDCON.rar
Перевели проект на Модбас-Аски. Остальные настройки те же. Итог - все время включены выходы 1 на всех трех модулях. Хотя, как видно из обмена, команды на включение тоже нет. Проект- ver2_modbus_5.rar
С Модбас-рту вроде нормально.

Филоненко Владислав
27.05.2008, 11:28
Эту ошибку мы уже нашли и исправили.
С версии 1.09.
В RTU режиме ошибки нет.
Или обратитесь в сервис-центр.

Akop
29.05.2008, 19:43
А надо файл конфигурации МДВВ куда ни будь вкладывать???

Филоненко Владислав
30.05.2008, 13:02
А зачем выкладывать?

Akop
01.06.2008, 21:57
Подскажите .А где находится ФБ "SELECT". В какой библиотеке? И где можно найти? Жду ответа.

Kirill
02.06.2008, 11:09
Подскажите .А где находится ФБ "SELECT". В какой библиотеке? И где можно найти? Жду ответа.

ФБ SEL или MUX. Библиотека standard.lib

Akop
02.06.2008, 18:38
У меня STANDART.LIB 4.10.O5 11:14:46. Но тут нет ни SEL ни MUX. Подскажите где взять другую версию библиотеки.?

Akop
02.06.2008, 20:06
Выложите пожалуста файлик из STANDART.LIB с функциональным блоком SELECT и MUX. Не могу найти.

Kirill
03.06.2008, 10:46
Выложите пожалуста файлик из STANDART.LIB с функциональным блоком SELECT и MUX. Не могу найти.

прошук прощения, перепутал. Это функции, зашитые в сам кодесис. Посмотрите в хэлпе.

530

Akop
03.06.2008, 17:57
Покажите пожалуйста на примере LD как пользоваться этой функцией. Протокол Овен будет с ней работать? Учебный примерчик прилагаю.А то ни как не могу победить МДВВ. Выхода не слушаются. ПЛК 100 Р-М. Жду.

Филоненко Владислав
03.06.2008, 21:05
Рекомендую использовать ST, более гибкий язык, выучить не сложно.

Kirill
04.06.2008, 11:25
Покажите пожалуйста на примере LD как пользоваться этой функцией. Протокол Овен будет с ней работать? Учебный примерчик прилагаю.А то ни как не могу победить МДВВ. Выхода не слушаются. ПЛК 100 Р-М. Жду.

у вас переменные для выходов определены дважды - это первая неточность. Второе, выходы должны быть типа real.
третье - если вы указываете при объявлении переменной адрес из plc configuration, то в самом plc config эту переменную указывать не следует. Вместо селекторов используйте модуль bool_to_real. см. пример.

535

Akop
04.06.2008, 23:03
Огромное спасибо. Применил BOOL_TO_REAL на своём проекте-Выхода работают. Радости было полные шт..... .На счёт ST. Я электрик и мне более приемлем LD и FBD . Да,правда задержка включения около 0,5-1 секунд.
Это как то можно исправить? И где? И еще вопросик.Как зделать чтобы при
включении питания ПЛК не перезагружался? ещё раз спасибо...

Малышев Олег
05.06.2008, 09:13
Задержка идет за счет большого количества передаваемых по сети данных. Для быстрого управления рекомендую перейти (если позволит версия прошивки МДВВ) на MODBUS RTU и использовать 50 и 51 регистры. Лично мне сильно помогло.

Kirill
05.06.2008, 10:09
И еще вопросик.Как зделать чтобы при
включении питания ПЛК не перезагружался? ещё раз спасибо...

Это штатная функция. Зарядите аккумулятор и не отключайте питание более чем на 5-10 минут.

Akop
06.06.2008, 14:21
ПЛК работает по ОВЕН нормально.Но по MODBUS-RTU происходит
полная билеберда. Выхода включаются и выключаются с периодом 0.5 секунд и не реагирует на входа.Покажите пожалуйста на учебном примере как правильно настроить МДВВ по Modbus-RTU.
Пуск-стоп гидравлики. Думаю это будет многим интересно. ПЛК 100 Р-М.
Язык LD. Файлик прилагаю. Жду.

Kirill
07.06.2008, 15:21
в примере используются маски входов и выходов МДВВ. Это позволяет упростить программу и уменьшить информационный обмен между ПЛК и модулем.

В вашем примере вы работали с каждым выходом отдельно. В этом случае необходимо посылать не 0 или 1 , а 0 или 1000. Кроме того вы считывали из МДВВ не значение на входе, а значение счетчика каждого входа.

549

mikl65
09.06.2008, 13:54
в примере используются маски входов и выходов МДВВ. Это позволяет упростить программу и уменьшить информационный обмен между ПЛК и модулем.



Вот возник вопрос - в ходе выполнения этой программы идет постоянный опрос входов и запись режимов выходов? То есть работа по интерфейсу синхронно с циклом исполняемой программы?
Если, допустим, в следующей строке программы будет опрос двух других входов и запись в какой-либо выход, то по сети будет четыре обращения к модулю? (сучетом чтения и записи).
Можно настроить так, чтобы опрос входов был, например раз в 1 сек, а запись только после изменения состояния какого-либо выхода?

Kirill
09.06.2008, 15:37
Вот возник вопрос - в ходе выполнения этой программы идет постоянный опрос входов и запись режимов выходов? То есть работа по интерфейсу синхронно с циклом исполняемой программы?
Если, допустим, в следующей строке программы будет опрос двух других входов и запись в какой-либо выход, то по сети будет четыре обращения к модулю? (сучетом чтения и записи).
Можно настроить так, чтобы опрос входов был, например раз в 1 сек, а запись только после изменения состояния какого-либо выхода?

Вообще-то это так и происходит. Процесс обмена по интерфейсу имеет свою задаваемую периодичность и происходит параллельно с циклом работы вашей программы. Существует буфер, так называемая память ввода/вывода, в которую посредством интерфейсов записываются вновь опрошенные значения с модулей и из которой считывается информация для пересылки в модули. Программа считывает и обновляет значения в этой памяти 1 раз в цикл. Средства работы с интерфейсами используют и обновляют эту информацию в соответствие со своими настройками независимо от цикла ПЛК. В том числе можно настроить опрос раз в 1 секунду. Как? Читайте в руководстве по подключению модулей и в описании plc configuration.

mikl65
10.06.2008, 06:56
Спасибо. Более-менее понятно.
Еще возник вопрос по поводу опроса модулей по команде. Из описания: "By Command – «по команде» – производится однократная посылка запроса, когда в командный канал Command переменной записывается значение 0x00FF".
При добавлении как универсального модбас устройства, так и стандартных модулей (МДВВ и т.п.) видим в корне самого устройства строку вида
AT %QBx.x.x.x:BYTE; (* Command (0xff-Start) *)
Означает ли это, что опрос этих устройств ведется только по команде? значит нужно в этот канал записывать значение FF или в него можно как-то "запрограммировать" это значение чтобы не тратить область ввода-вывода? А если в универсальном устройстве есть еще несколько каналов, некоторые из которых нужно опрашивать по запросу? Тогда нужно и в само устройство посылать команду (запрос) и в конкретный канал? И еще - Допустим записали данные в выходное устройство, пока нам больше не надо обмена с этим каналом. Нужно в командный канал записывать значение отличное от FF?
Надеюсь понятно изложил вопросы. Заранее спасибо за разъяснения.

Малышев Олег
10.06.2008, 08:58
Вы поняли это совершенно правильно.
Хотя логические рассуждения Вас привели к тому же, что написано в PLC_Configuration.pdf на диске ПЛК.;)
Действительно запись 0xff запускает опрос, а 0xfe - останавливает.

dominox
25.09.2008, 12:32
Воспользуйтесь ФБ из прилагаемой библиотеки, там все уже разобрано по битам.

312

при загрузке программы с использованием этого ФБ Codesys выдает следущее:
Unresolved external POUs:
mdvv_input_extr
mdvv_input_extrinit

что посоветуете?

прошивка 2.02
таргет 2.03.0

спасибо

Kirill
26.09.2008, 10:17
при загрузке программы с использованием этого ФБ Codesys выдает следущее:
Unresolved external POUs:
mdvv_input_extr
mdvv_input_extrinit
что посоветуете?
спасибо

Подключите к проекту библиотеку Util.lib
А еще проще обращайтесь к маске входов следующим образом:
mask_inp.0 - обращение к 1 входу мдвв.
mask_inp.9 - обращение к 10 входу мдвв.

Здесь mask_inp - переменная типа word, в которую записывается опрошенное значение маски входов МДВВ.

dominox
26.09.2008, 13:04
Действительно проще.
Спасибо

bango
27.10.2008, 16:50
Я начинающий пользователь скачал пример ПЛК100 + МДВВ RTU маски при запуске online/login ошибка Communication Error(#0):Logout Performed что это такое и как с этим бороться.

Kirill
28.10.2008, 10:26
Я начинающий пользователь скачал пример ПЛК100 + МДВВ RTU маски при запуске online/login ошибка Communication Error(#0):Logout Performed что это такое и как с этим бороться.

это означает, что codesys не смог установить связь с ПЛК по заданному интерфейсу с заданными параметрами связи. Необходимо:

1. в меню онлайн/параметры связи указать тот com-port, к которому производится подключение ПЛК (подробности в руководстве по эксплуатации на ПЛК)

2. проверить работоспособность сом-порта, проверить подключение линий связи.

bango
28.10.2008, 22:23
Я пишу контрольную у меня нет контроллера под визуализацию. ПЛК 100 МДВВ это реально

bango
28.10.2008, 22:30
не вложил поправляюсь

Kirill
29.10.2008, 10:36
Я пишу контрольную у меня нет контроллера под визуализацию. ПЛК 100 МДВВ это реально

Не совсем понятно.. Если вопрос состоит в том, можно ли с помощью ПЛК и МДВВ оживить такую мнемо схему, то это возможно.

bango
29.10.2008, 21:04
Доперло Simulation mode но возник вопрос как кнопку в визуализаии прикрутить к входу
МДВВ пример описывал выше. Благодарю за помощь

bango
29.10.2008, 21:49
Write Values работает. Подробней рисую кнопку в Regular Element Configuration -> Colors-> Variables Change color->Input Tap variable или Toggle что туда только не вбивал не выходит

Kirill
30.10.2008, 14:48
Write Values работает. Подробней рисую кнопку в Regular Element Configuration -> Colors-> Variables Change color->Input Tap variable или Toggle что туда только не вбивал не выходит

кнопку завязать со входом МДВВ у вас не выйдет. С выходом проще. Должна быть в проекте переменная типа Bool, которая воспринимает изменение кнопки. Вы заходите в tap variable, нажимаете F2 и в выпавшем списке находите эту самую переменную (то есть ту чать проекта, где она определена. Далее перобразование bool в то, что вам необходимо и передача этого на выход МДВВ.

смотрите пример.

786

bango
30.10.2008, 14:54
Попробую благодарю Kirill за помощь

bango
02.11.2008, 16:08
Привет, помогите не могу разобраться как пример ПЛК100 + МДВВ RTU маски написать на ст под визуализацию. Выход работает вход не работает. Я понял работает как пик перегружает с входа в аккумулятор и из аккумулятора на выход. Киньте пример плиз.

Николаев Андрей
05.11.2008, 10:41
Можно чуть понятнее описать проблему, что куда чего кидает, и что не получается...
И какой аккумулятор в СТ...

bango
05.11.2008, 19:22
Не получается повторить пример ПЛК100 + МДВВ RTU маски под ST,а она написана под LD. Не в ST а в PIC-контроллере аккумуляторы находятся. А задача состоит в том чтобы первый вход на ПЛК 100 включал выход первый на МДВВ и отключал его первым входом находящемся на МДВВ. Вот как то так.

Kirill
06.11.2008, 10:57
Не получается повторить пример ПЛК100 + МДВВ RTU маски под ST,а она написана под LD. Не в ST а в PIC-контроллере аккумуляторы находятся. А задача состоит в том чтобы первый вход на ПЛК 100 включал выход первый на МДВВ и отключал его первым входом находящемся на МДВВ. Вот как то так.

Посмотрите пример.

803

bango
06.11.2008, 17:15
Попробую спасибо за помощь.