PID термоконтроль в AS300

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

И снова - здравствуйте!
Что-то я опять воткнулся... Все было нормально, собрал программу, подключаюсь... И вот тут такое вылезло... Что за представление числа и как его вернуть к обычному значению Т?
Однозначно "зацепил" какой-то регистр со служебными данными. Вопрос - какой? После обнуления всей энергонезависимой памяти все встало на свои места...
Вложения
AS300_TC.png
AS300_TC.png (21.36 КБ) 1186 просмотров

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: PID термоконтроль в AS300

Сообщение bayk »

Это нормальное отображение. В настройках стоит режим отображения авто Но поскольку вы в прямую указываете регистр то ispsoft не в состоянии определить его тип если вы зададите переменную нужного типа и зададите для неё этот адрес то тогда отображение будет правильным

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Так... С типами, преобразованием и работой инструкции я определился... Инструкция DPIDE заработала. Теперь другой вопрос: почему не работает инструкция INT?
Вложения
PID111.png
PID111.png (22.33 КБ) 1142 просмотра

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Путем танца с бубном вокруг "обзывания" переменных, удалось заставить работать инструкцию INT. Теперь уперся в GPWM. Не работает, зараза...
Типы обеих входных переменных - WORD
Вложения
PID222.png
PID222.png (24.63 КБ) 1141 просмотр

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Стоп... Минутку... Проблема - в криворукости, похоже. Отключил все строки, кроме этой - заработало.

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Хм... Интересно девки пляшут... Устройство состоит из 4-х зон нагрева. Соответственно, 4 аналогичных вышеописанному участка программы... Переменные не пересекаются (кроме S2 в GPWM). Так вот... Отключаю 3 зоны из 4-х - инструкция GPWM работает. Стоит активировать еще хотя бы одну зону - инструкция не работает. Но стоит на второй включенной зоне включить реле, запускающее ее (другой зоны) инструкцию GPWM, как тут же включается и нормально работает GPWM первой!
Что за хрень?! Ну не было на DVP такого геморроя! Подскажите, пожалуйста. Заранее благодарен.

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Какой-то полнейший бред... Глюканул (бывает) менеджер COM. Пришлось перезагрузить компьютер. Теперь снова GPWM не работает ни при каких условиях.

takoma
Сообщения: 15
Зарегистрирован: 26 янв 2014, 23:34

Re: PID термоконтроль в AS300

Сообщение takoma »

Так. С бредом в предыдущем крике души я разобрался. Надо больше отдыхать. ))) Или стакан опрокинуть. Но вот с переменной S2 в GPWM интересная история получается... В каждой инструкции GPWM приходится использовать разные адреса S2. Иначе, при наличии нескольких инструкций в программе, если хоть одна из них (инструкций GPWM) будет отключена, то и остальные работать отказываются. Мдааа....

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: PID термоконтроль в AS300

Сообщение Олег »

Не внимательно инструкцию читали.
S2+1 и S2+2 являются системными параметрами. Не редактируйте их
т.е. эти адреса используются для работы инструкции, и естественно GPWM будут тупить, если будут использовать для расчётов одни и те же адреса.

Владимир Колчанов
Сообщения: 141
Зарегистрирован: 12 апр 2015, 10:03

Re: PID термоконтроль в AS300

Сообщение Владимир Колчанов »

В инструкции:
Дополнительные примечания
1. Команда считается по циклу сканирования. Следовательно, максимальная ошибка составляет один цикл сканирования. Кроме того, S1, S2 и (S2-S1) должны быть больше, чем цикл сканирования; в противном случае при выполнении инструкции GPWM возникает ошибка.
2. Если вы используете инструкцию в функциональном блоке или в задаче прерывания, возникает неточный импульсный выход.
3. Если вы объявляете операнд S2 в ISPSoft, тип данных - ARRAY [3] of WORD / INT.

Соответственно, для каждого канала нужно прописать свой массив для S2.
Тогда не будут пересекаться регистры и все будет корректно работать.

Ответить