Огромное спасибо за предоставленную библиотеку и консультации!!!
Огромное спасибо за предоставленную библиотеку и консультации!!!
У меня попутный вопрос по теме (МДВВ, 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;
Это не правильно? Так вообще можно работать, с отдельными битами?
Если говорить об обмене, то работа по битам возможна, но в 8 раз медленнее. Это Вам надо?
А в программе ПЛК можно вытворять всё что угодно, в т.ч. и обращаться к битам или накладывать маски.
С точки зрения быстродействия если нужно обработать 1 бит - работайте с ним, если группу - используйте маску.
Помогите настроить выходы в МДВВ. Подключил ПЛК100К-М и МДВВ, на входы реакция есть а выходы не реагируют. Программу написал простейшую на CFC. Что мне нужно сделать?
для включения реле присвойте соответствующему выходу МДВВ значение равное 1000 для отключения присвойте 0
Проще это можно реализовать используя ФБ "SELECT"
там 3 входа 1 дискретный и 2 числовых и один дискретный выход,
к выходу блока привяжите переменную МДВВ, 2му входу присвойте 0 а 3му 1000 и в зависимости от состояния 1 входа ФБ SELECT реле будет принимать соответствующее значение 0 или 1
в вашей программе дважды определены переменные q1, q2, q3. Либо задавайте имена выходам непосредственно в plc configuration, либо используйте адресацию %QD ... при определении переменных в программе plc_prg. Только один из вариантов, а не оба сразу. См. пример.
PLC+MDVV.rar
Вообще-то, проблема не в том, как определены переменные, а в том, что при определении в 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
К сожалению, я непонимаю, какие переменные у меня определены дважды. А, если возможно, то можно ли исправить в проекте, чтоб было наглядно видно.
В plc configuration необходимо убрать имена переменных q1, q2 ,q3 ,q4, оставить только объявления в программе (между var и end_var). Также там необходимо определять переменные q2, q3, q4 типа real, тк передается в модуль именно значение типа real. Для преобразования булевой величины в real используются фб преобразований bool_to_real (см. программу plc prg).
PLC+MDVV.rar
Последний раз редактировалось Kirill; 25.03.2008 в 12:27.