PID термоконтроль в AS300
Re: PID термоконтроль в AS300
И снова - здравствуйте!
Что-то я опять воткнулся... Все было нормально, собрал программу, подключаюсь... И вот тут такое вылезло... Что за представление числа и как его вернуть к обычному значению Т?
Однозначно "зацепил" какой-то регистр со служебными данными. Вопрос - какой? После обнуления всей энергонезависимой памяти все встало на свои места...
Что-то я опять воткнулся... Все было нормально, собрал программу, подключаюсь... И вот тут такое вылезло... Что за представление числа и как его вернуть к обычному значению Т?
Однозначно "зацепил" какой-то регистр со служебными данными. Вопрос - какой? После обнуления всей энергонезависимой памяти все встало на свои места...
- Вложения
-
- AS300_TC.png (21.36 КБ) 1186 просмотров
Re: PID термоконтроль в AS300
Это нормальное отображение. В настройках стоит режим отображения авто Но поскольку вы в прямую указываете регистр то ispsoft не в состоянии определить его тип если вы зададите переменную нужного типа и зададите для неё этот адрес то тогда отображение будет правильным
Re: PID термоконтроль в AS300
Так... С типами, преобразованием и работой инструкции я определился... Инструкция DPIDE заработала. Теперь другой вопрос: почему не работает инструкция INT?
- Вложения
-
- PID111.png (22.33 КБ) 1142 просмотра
Re: PID термоконтроль в AS300
Путем танца с бубном вокруг "обзывания" переменных, удалось заставить работать инструкцию INT. Теперь уперся в GPWM. Не работает, зараза...
Типы обеих входных переменных - WORD
Типы обеих входных переменных - WORD
- Вложения
-
- PID222.png (24.63 КБ) 1141 просмотр
Re: PID термоконтроль в AS300
Стоп... Минутку... Проблема - в криворукости, похоже. Отключил все строки, кроме этой - заработало.
Re: PID термоконтроль в AS300
Хм... Интересно девки пляшут... Устройство состоит из 4-х зон нагрева. Соответственно, 4 аналогичных вышеописанному участка программы... Переменные не пересекаются (кроме S2 в GPWM). Так вот... Отключаю 3 зоны из 4-х - инструкция GPWM работает. Стоит активировать еще хотя бы одну зону - инструкция не работает. Но стоит на второй включенной зоне включить реле, запускающее ее (другой зоны) инструкцию GPWM, как тут же включается и нормально работает GPWM первой!
Что за хрень?! Ну не было на DVP такого геморроя! Подскажите, пожалуйста. Заранее благодарен.
Что за хрень?! Ну не было на DVP такого геморроя! Подскажите, пожалуйста. Заранее благодарен.
Re: PID термоконтроль в AS300
Какой-то полнейший бред... Глюканул (бывает) менеджер COM. Пришлось перезагрузить компьютер. Теперь снова GPWM не работает ни при каких условиях.
Re: PID термоконтроль в AS300
Так. С бредом в предыдущем крике души я разобрался. Надо больше отдыхать. ))) Или стакан опрокинуть. Но вот с переменной S2 в GPWM интересная история получается... В каждой инструкции GPWM приходится использовать разные адреса S2. Иначе, при наличии нескольких инструкций в программе, если хоть одна из них (инструкций GPWM) будет отключена, то и остальные работать отказываются. Мдааа....
Re: PID термоконтроль в AS300
Не внимательно инструкцию читали.
т.е. эти адреса используются для работы инструкции, и естественно GPWM будут тупить, если будут использовать для расчётов одни и те же адреса.S2+1 и S2+2 являются системными параметрами. Не редактируйте их
-
- Сообщения: 141
- Зарегистрирован: 12 апр 2015, 10:03
Re: PID термоконтроль в AS300
В инструкции:
Дополнительные примечания
1. Команда считается по циклу сканирования. Следовательно, максимальная ошибка составляет один цикл сканирования. Кроме того, S1, S2 и (S2-S1) должны быть больше, чем цикл сканирования; в противном случае при выполнении инструкции GPWM возникает ошибка.
2. Если вы используете инструкцию в функциональном блоке или в задаче прерывания, возникает неточный импульсный выход.
3. Если вы объявляете операнд S2 в ISPSoft, тип данных - ARRAY [3] of WORD / INT.
Соответственно, для каждого канала нужно прописать свой массив для S2.
Тогда не будут пересекаться регистры и все будет корректно работать.
Дополнительные примечания
1. Команда считается по циклу сканирования. Следовательно, максимальная ошибка составляет один цикл сканирования. Кроме того, S1, S2 и (S2-S1) должны быть больше, чем цикл сканирования; в противном случае при выполнении инструкции GPWM возникает ошибка.
2. Если вы используете инструкцию в функциональном блоке или в задаче прерывания, возникает неточный импульсный выход.
3. Если вы объявляете операнд S2 в ISPSoft, тип данных - ARRAY [3] of WORD / INT.
Соответственно, для каждого канала нужно прописать свой массив для S2.
Тогда не будут пересекаться регистры и все будет корректно работать.