Просмотр полной версии : потеря связи с ПР из-за макроса в СП307
добрый день. подскажите где копать?написал макрос для синхронизации времени с ПР. Но выдает флаг ошибки PSB51, хотя данные записываются, сделал функциональную область которая непрерывно выполняет данный макрос.
kondor3000
10.04.2024, 15:58
добрый день. подскажите где копать?написал макрос для синхронизации времени с ПР. Но выдает флаг ошибки PSB51, хотя данные записываются, сделал функциональную область которая непрерывно выполняет данный макрос.
Вообще макросы надо вызывать раз в секунду.
А без макросов никак? Их же проверить можно только в живой панели. Давал вам ссылку как сделать без макросов.
https://owen.ru/forum/showthread.php?t=39408
Вообще макросы надо вызывать раз в секунду.
А без макросов никак? Их же проверить можно только в живой панели. Давал вам ссылку как сделать без макросов.
https://owen.ru/forum/showthread.php?t=39408
Да, видел,спасибо, но просто хочется научиться самому писать макросы,вроде функцию свою выполняет, только смущает что появляется данная ошибка
Вообще макросы надо вызывать раз в секунду.
А без макросов никак? Их же проверить можно только в живой панели. Давал вам ссылку как сделать без макросов.
https://owen.ru/forum/showthread.php?t=39408
Так этот графический макрос для синхронизации времени панели с временем ПЛК(ПР), а мне нужно наоборот, чтобы время на ПР синхронизировалось с временем панели
добрый день. подскажите где копать?написал макрос для синхронизации времени с ПР. Но выдает флаг ошибки PSB51, хотя данные записываются, сделал функциональную область которая непрерывно выполняет данный макрос.
Прошу прощения, но у меня несколько вопросов к ТС:
Судя по документации:
- системное время в панели храниться по адресам PSW[30] .. PSW[36]
- Функция Write имеет формат BOOL Write (PortName, SlaveID, DeviceTypeReg, AdrReg, AdrBit, 0, DataType, Var); т.е. 8 - параметров, а у Вас всего 7
- вызов функции происходит за пределами if, это значит, что системный день будет передаваться только в 16:55, а все остальное время он равен 0.
Прошу прощения, но у меня несколько вопросов к ТС:
Судя по документации:
- системное время в панели храниться по адресам PSW[30] .. PSW[36]
- Функция Write имеет формат BOOL Write (PortName, SlaveID, DeviceTypeReg, AdrReg, AdrBit, 0, DataType, Var); т.е. 8 - параметров, а у Вас всего 7
- вызов функции происходит за пределами if, это значит, что системный день будет передаваться только в 16:55, а все остальное время он равен 0.
1) Системное время можно экспортировать на другие регистры, в настройках проекта
2)Я взял пример из руководства, там 7.
75177
3) Ну мне и надо чтобы в заданное время он записал свои показания на ПР, а в остальное время ничего больше не делал
Прошу прощения, но у меня несколько вопросов к ТС:
- Функция Write имеет формат BOOL Write (PortName, SlaveID, DeviceTypeReg, AdrReg, AdrBit, 0, DataType, Var); т.е. 8 - параметров, а у Вас всего 7
Перепроверьте по документации - Вы лишний "0" прилепили
должно быть (по документации) 7 параметров.
Если после ключевого слова Write набрать "(",то появится мастер ввода ВСЕХ параметров функции
тогда ошибиться просто невозможно.
75178 --> 75179
Перепроверьте по документации - Вы лишний "0" прилепили
должно быть (по документации) 7 параметров.
Если после ключевого слова Write набрать "(",то появится мастер ввода ВСЕХ параметров функции
тогда ошибиться просто невозможно.
75178 --> 75179
Виноват я смотрел сюда:
75180
1) Системное время можно экспортировать на другие регистры, в настройках проекта
2)Я взял пример из руководства, там 7.
75177
3) Ну мне и надо чтобы в заданное время он записал свои показания на ПР, а в остальное время ничего больше не делал
3) Тогда наверно правильнее:
if(...){
a = dec_dey;
Write(...);
}
Надо учесть, что это условие истинно целую минуту - за это время при "непрерывном вызове", макрос просто задолбит ПР-ку.
Правильнее в глобальном макросе объявить: BOOL isSend;
А в вызываемом:
if(...){
if(!isSend){
a = dec_dey;
Write(...);
isSend = TRUE;
}
}else isSend = FASLE;
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot