Если макрос использовать, то как его вызывать один раз при включении? Не по нажатию кнопки естественно.
Вид для печати
Если макрос использовать, то как его вызывать один раз при включении? Не по нажатию кнопки естественно.
Зачем тут макросы, всё это можно сделать с помощью ФО ( функц. области).
Например при включении панели, присвоить нужные значения в регистры PSW и если надо выключить бит.
При загрузке проекта, присвоить нужные значения в регистры PFW и (или) если надо включить бит.
Если так сделать, то проверять на 0 уже не надо.
Проверить регистры на 0 можно графическим макросом от petera ( все не надо, достаточно 1-2 регистров), макрос включит установленный бит.
Далее ФО по биту записывает нужные регистры или копирует группу регистров из PFW в PSW или обратно
Графич. макросы в проекте, есть для DEC, Unsignet, Float чисел, щёлкнув мыщью можно менять бит и регистр.
Важное отличие от обычных макросов, они работают и в эмуляции.
Мастер кто у вас?
Если ПЛК, то делаете так
petera неоднократно выкладывал примеры записи, чтения через STRING https://owen.ru/forum/showthread.php...l=1#post244022
Важно понять принцип работы, дальше дело техники.
Проблема после попытки загрузки СП310Б. На экране висит ЗАГРУЗКА, при передёргивании питания так и остаётся. И не грузится... Как всё сбросить?
Оказалось что проект не грузится в панель из-за того что компилирование его макросов даёт ошибку. Если макросы стереть то грузится. Ранее этот проект всегда загружался нормально. Сейчас с другого ноутбука проблемка. Что надо смотреть чтобы компиляция макросов прошла? Конфигуратор с сайта установлен.
На одной линии RS-485 3 устройства, СП307 и пара частотников.
Собираюсь через Конфигуратор ПЛК работать со всеми 3мя.
Лучше чтобы настройки были одинаковые? Скорость, четность и тп
Если разные настройки соединения, то конфигуратор будет переоткрывать порт или он в любом случае это делает для разных устройств?
То есть как идеологически правильно тут поступить?
Правильно включить частотники и панель на разные порты. Если такой возможности нет, тогда снижайте скорость на всех устройствах до 9600 (19200),
вобщем в зависимости от помех подбирайте скорость, и все настройки естественно одинаковые.
Все измерительные и сигнальные кабели экранировать, экраны заземлить рядом с ПЛК, 120 Ом на концах RS485, силовые и сигнальные разнести подальше, фильтры по питанию.
У частотников максимальная 38400, думаю такую и выставить.
И они дают сильные помехи на линию RS, смотрели осциллографом.
Через конфигуратор устройство Modbus Master на одной линии RS можно только одно делать?
Проект с макросами нормально загружается в панель СП310 с ПК с Win10 и не транслируется и не загружается с ПК с Win7, нет компиляции макросов. При компиляции выдает вымпел "! Конфигуратор".
Здравствуйте!
В мануалах не нашел ппоэтому задаю вопрос. Подскажите пожалуйста есть ли возможность в заливать проект в панель СП310 удаленно?
Нормального способа нет. Можно залить с флешки или через Download порт, при включении джамперов, но это очень медленно, а по сети нереально.
Зато проект можно заблокировать и переслать для заливки ( Файл/ Заблокировать проект). Открыть его будет нельзя, а залить можно.
Только сделайте копию сразу, иначе и вы открыть не сможете.
Добрый день! Подскажите насчет парольного доступа. Если на кнопку перехода на экран установить галочку на "Пароль", то доступ будет только при авторизации на отдельном экране. Но если пользователь не авторизирован, то при нажатии на кнопку абсолютно ничего не происходит, будто кнопка не имеет действия. Можно ли как-то сделать уведомление нажатии на кнопку без нужного уровня авторизации, вроде всплывающего окна "Необходимо авторизоваться"?
Тут как бы "если пользователь не авторизирован, то при нажатии на кнопку абсолютно ничего не происходит" для любых элементов
Однако можно исправить и это
Скрытый текст:
Возможно ли назначать для функциональной области имя?
Здравствуйте!
Работаю с панелью ОВЕН СП307, и есть у меня несколько вопросов, на которые мне интересно получить ответ:
1. Когда я читал карту регистров Modbus для этой железки то нашел там такой параметр как "Пульсирующий бит 50/500/30/150 мс" в регистрах PSB, и я хотел бы узнать, а что это собственно за параметр, для чего он нужен и в каких случаях он может быть true или false?
2. Интересует вот такой момент: когда мы только подключаем панель, стоит ли галочка "Авторазмещение" в настройках регистров PFW? И если ее выключить то что будет с данными - они переместятся на ячейки, которые в карте регистров Modbus расписаны или на том же месте останутся?
Проще было вывести эти биты на индикаторы и посмотреть. Они просто мигают с заявленным периодом. PSB4 (500 ms) например, можно использовать как секундные импульсы.
Авторазмещение ставится не само, а при добавлении например Тренда, соответственно записываться тренд будет начиная с PFW4096 и далее в зависимости от глубины (длительности записи).
Всё что от PFW256 до PFW4095 можете спокойно использовать, ничего не сместится. Только не делайте запись часто. Не чаще нескольких раз в день.
Для трендов, желательно делать записи глубиной от недели до нескольких месяцев, для продления ресурса памяти.
Хорошо, я вас услышал, единственное что я бы вот хотел уточнить:
Вот у меня есть программа на C#, там я работаю со всеми регистрами, PSB, PSW, c PSB я взаимодействую через ReadCoils, а с PSW и PFW - с ReadHoldingRegisters, и, если я правильно понимаю то регистры PSW и PFW имеют одну общую область, и у меня сейчас такая проблема, что с PSB и PSW все в порядке, а вот с PFW - все грустнее, данные выводятся, но это не то вообще, и вот отсюда вопрос: можно ли каким-то образом посмотреть и понять, что в какой ячейке лежит? Можно ли это сделать через конфигуратор?
Здравствуйте.
Пишу макрос для СП310
static WORD ArrValueDW[2];
static float RegFloat;
WORD Temp1;
if (GetPSBStatus(318)==1) {//1
if (Reads(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 2, &ArrValueDW)) {//2
RegFloat=*(float*)(ArrValueDW);//float
*(float*)(PSW+318)=RegFloat;//PSW[318] DWord float
RegFloat=RegFloat*10.0;
Temp1=(WORD)RegFloat;
PSW[320]=Temp1;//PSW[320] Word Dec
if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
ResetPSB(318);
} //Wr
}//2
}//1
При вводе данных в PFW[300] устанавливается бит PSB[318] и панель сразу зависает ( не реагирует на нажатия)...что я делаю не так?
не понял про 318....PSB318 это бит уведомления о изменении параметра(может быть любого номера)
а PSW[318] Dword =4 байта(т.е. регистры 318 и 319)
это как то совсем не научно ((( а других ошибок в коде нет?
у Вас есть пример работы с PFW?
команда Reads возвращает True если успешно прочиталось...вроде так
if (GetPSBStatus(318)) {//1
ResetPSB(318);
SetPSB(400);
Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 0, TYPE_DWORD, &ArrValueDW);
/* RegFloat= *(float*)(ArrValueDW);//float
//RegFloat=12.3;
*(float*)(PSW+318)=RegFloat;
RegFloat=RegFloat*10.0;
Temp1=(WORD)RegFloat;
PSW[320]=Temp1;*/
// if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
// ResetPSB(318);
// } //Wr
}//1
при вводе значения в PFW[300] виснет