Добрый день.
В проекте в Варианте 1 дисплей имеет формат Float, а в Варианте 2 - Unsigned. В Варианте 2 при нажатии кнопки Установить значение на дисплей выводится заданное значение, а в Варианте 1 заданное значение не выводится. В чем причина ?
Вид для печати
Добрый день.
В проекте в Варианте 1 дисплей имеет формат Float, а в Варианте 2 - Unsigned. В Варианте 2 при нажатии кнопки Установить значение на дисплей выводится заданное значение, а в Варианте 1 заданное значение не выводится. В чем причина ?
А если так? 1178657792
Вложение 45262
:rolleyes:
ЗЫ
Подсказка
Ведь в функции присваивания допустимо вводить только значение DWord(или Word), т.е. только целые, беззнаковые числа.
12345,00(Float) имеет внутреннее представление как Dword 4640E400(Hex) или 1178657792(Dec)
Перевод Float http://www.binaryconvert.com/result_...49050051052053
Здравствуйте! Неожиданно перестал открываться проект. Выдает ошибку: "Ошибка проверки данных, проверти что файл поврежден" и за ней еще одну: "Tigger coil".
Другие проекты открываются нормально.
Может у Вас конфигуратор установлен в папку с другим названием.
Искать папку \Back нужно там где находится "SP300.exe", ищите в свойствах ярлыка конфигуратора в меню Программы
У меня место установки называется так, как я написал
Вложение 45296
Здравствуйте! Не нашёл информацию, есть ли возможность отправить панель на перезагрузку командой с панели?
Для чего мне это надо: убираю пищание при нажатии (раздражает коллег), для этого надо выставить PFW2 в единичку и перезагрузить панель. Проект дорабатывается, каждые полчаса новый загружается в панель и тестируется, неудобно каждый раз питание вытаскивать и вставлять.
Панели под рукой нет, но эмуляцию завершить можно переходом на экран 65535
Вложение 45375
Попробуйте с панелью.
ЗЫ
Если в проекте нет макросов на Си, то зачем каждые полчаса пробовать проект в панели?
Для этого есть эмулятор. Не слышали?
Экран 65535 не подходит, панель просто зависает при переходе. Либо это просто белый экран, откуда нет возврата)
Про онлайн эмуляцию я уже писал, он некорректно биты переключает. Не взводит нужные биты и иногда взводит не нужные. На панели всё ок.
Это не пример, это ответ от специалиста.
https://owen.ru/forum/showthread.php?p=298396
Добрый день.
В макросе объявлено float V = 0;. Макрос вызывается раз в 10 секунд. Вопрос - переменная V будет обнуляться при каждом вызове макроса ?
Пользовательский макрос вызывается с помощью элементов Функциональная кнопка или Функциональная область. А как вызывается Глобальный макрос или его вообще вызывать не надо ?
1. Да, переменные макроса инициализируются при каждом его вызове.
2. Глобальный макрос вызывать не нужно - в нем только объявляются функции, которые вызываются в пользовательских макросах.
Здравствуйте коллеги.
Подскажите пожалуйста, может кто сталкивался.
Прикручиваю панельку СП307 к ПЛК Fatek B1-10m.
Связь по Modbus RTU.
Связь устанавливается и я могу с панеле выставлять Coils и Holding Registers.
Адресация в панеле Coil0 = Fatek Y0.... Coil8=Y8, Панель HR0 = Fatek R0... HR8 = R8.
Проблема в том, что не могу понять где в ПЛК расположены адреса памяти, которые должны транслироваться в Input registers и Discrete inputs.
В мануале на Fatek описана только ситуация когда Fatek работает мастером, а когда слейвом - типа должно быть понятно и так, что-ли.
Если кто сталкивался, помогите пожалуйста.
Добрый вечер!! В конфигураторе СП 300.. отображаеться только сквозная побитовая нумерация. Может где-то галочку поставить нужно, что бы к регистрам можно было адресовать?
Здравствуйте, какая максимальная частота кадров анимации изображений и от чего она зависит?
Есть ли способ сделать плавную анимацию с частотой 30/60 кадров в секунду?
Здравствуйте. Панель СП307 (Master) работает с реле ПР200 (Slave). Подскажите пожалуйста, как реализовать остановку выполнения программы ПР200 при ошибке (потери) связи или отключении питания панели СП307. Может с помощью функциональной области с непрерывной передачей (присвоением значения) системного бита панели PSB51 или как-то ещё? То есть, чтобы при отключении панели, неисправности панели или потери связи панели с реле, программа в ПР200 прекращала выполнение.
Нужно в программе ПР устанавливать контрольный бит в сетевом регистре и запускать от этого бита таймер TON, например на 3 сек
В панели завести ф.область(глобальную) с запуском от этого бита. Функция - сброс этого же контрольного бита.
Если панель работает, то таймер никогда не сработает, если связь с панелью пропадет на время больше 3сек, то в ПР сработает таймер и на выходе его получим бит аварии - Нет связи.
От этого бита нужно управлять логикой выполнения основной программы ПР.
ЗЫ
Вопрос задаете в разных ветках форума
Практическая реализация здесь https://owen.ru/forum/showthread.php...l=1#post318536
Спасибо за ответ. Спросил в двух ветках форума, так как не знаю, где данный вопрос более уместен, в ветке панелей оператора или программируемых реле.
1. Правильный бит - PFW36.2
2. Насколько я помню панель нужно перезагрузить (Выключить и включить).
Если запускать каждый раз эмуляцию онлайн из конфигуратора, то это эквивалентно загрузке нового проекта в панель, а нужно после включения PFW36.2 выключить и включить панель с одним и тем же проектом.
ЗЫ
Повторное включение эмулятора
Найдите папку AutoWin там где установлен конфигуратор и запускайте AutoWin.exe
Эмулятор загрузит последнюю эмуляцию и с сохраненным состоянием регистров PWF.
А будет ли эффект для 0x10 функции не знаю.
ЗЫ
Проверил через монитор порта
Эмулятор переключение функции через PFW36.2 не поддерживает.
petera, спасибо за ответ и за эксперименты. Про перезагрузку панели не знал, думал, что биты PFW26.2 и PFW36.2 можно менять на лету. Т.е., ежели у меня кроме ТРМов на панель навешены другие слейвы, писать в них функцией 0х06 не получится?
Кста, бит PFW26.2 потому что ТРМ я прикрутил к порту download. Бит PFW36.2 -- для порта PLC.
Использовать 0х10 функцию записи без PFW26.2/36.2 только для ТРМов можно если использовать макрос низкоуровневого формирования команды 0х10
Делал когда-то для СП270 и МУ
Код://В примере адрес устройства равен 176
//Данные с маской выхoдов МУ в регистре PSW300
//*************************************************
BYTE snd[11]={0xB0,0x10,0x00,0x32,0x00,0x01,0x02};//буфер для посылки команды slave
//[0]-адрес устройства(0xB0) 176
//[1]-Код функции ModbusRTU 0x10 -запись нескольких регистров
//[2]-ст.байт адреса начального регистра(0x00)
//[3]-мл.байт адреса начального регистра(0x32) 50
//[4]-ст.байт количества регистров(0x00)
//[5]-мл.байт количества регистров(0x01)
//[6]-количество байтов(0x02)
//[7]-ст.байт значения в регистре(Определим ниже)
//[8]-мл.байт значения в регистре(Определим ниже)
//[9]-ст.байт CRC(Определим ниже)
//[10]-мл.байт CRC(Определим ниже)
BYTE rcv[8];//буфер для приема ответа от slave
//[0]-адрес устройства
//[1]-Код функции ModbusRTU-чтение нескольких регистров 0x10
//[2]-ст.байт адреса начального регистра(0x00)
//[3]-мл.байт адреса начального регистра(0x32)
//[4]-ст.байт количества регистров(0x00)
//[5]-мл.байт количества регистров(0x01)
//[6]-ст.байт CRC
//[7]-мл.байт CRC
snd[7]=HIBYTE(PSW[300]);
snd[8]=LOBYTE(PSW[300]);
snd[9]=HIBYTE(Crc(snd,9));//дополнить команду CRC, сначала Hi
snd[10]=LOBYTE(Crc(snd,9));//затем Lo
//Crc() -внутренняя функция, ее писать не надо
Enter(PLC);//Захватить порт PLC
Send(PLC,snd,11);//Отправить команду
Receive(PLC,rcv,8,1000,6);//Получить ответ (тайм-аут 1000мс)
Leave(PLC);//Освободить порт
petera, благодарю за макрос. Как подправить, чтобы писал в регистр 4х4, дотумкаю. Но в любом случае для изменения уставок ТРМ придётся ждать живой панели. Эмулятор не поддерживает макросы.
BYTE snd[11]={0x01,0x10,0x00,0x04,0x00,0x01,0x02};//буфер для посылки команды slave
//[0]-адрес устройства(0x01) 1
//[1]-Код функции ModbusRTU 0x10 -запись нескольких регистров
//[2]-ст.байт адреса начального регистра(0x00)
//[3]-мл.байт адреса начального регистра(0x04) 4x4
//[4]-ст.байт количества регистров(0x00)
//[5]-мл.байт количества регистров(0x01)
//[6]-количество байтов(0x02)
//[7]-ст.байт значения в регистре(Определим ниже)
//[8]-мл.байт значения в регистре(Определим ниже)
//[9]-ст.байт CRC(Определим ниже)
//[10]-мл.байт CRC(Определим ниже)
Добрый день.
Правильно ли я понимаю, что макрос можно вызывать не чаще одного раза в секунду ?
Что означает вызов макроса без первой паузы ?
Речь идет о ф.области с условием "Циклическая"?
Условие "Циклическая" использует внутренний счетчик, который считает заданное количество импульсов от системного бита PSB4 - меандр с периодом 1с, т.е. 500 мс "0", 500 мс "1".
По этому и ограничение в 1 с - меньше одного импульса посчитать нельзя.
Однако если использовать режим от Бита управления, то можно в качестве таких бит взять системные биты PSB3(импульсы с периодом 100 мс) или PSB6(импульсы с периодом 300 мс) и получить вызовы макроса каждые 100 мс или 300 мс.
По второму вопросу.
Если включена галка "Без первой паузы", то цикл начинается с вызова функций, например макроса, затем пауза.
Если галка "Без первой паузы" выключена, то цикл начинается с паузы, затем вызов, например макроса.
Эта настройка в основном нужна, когда в дополнение к циклическому выполнению используется бит разрешения
Вложение 45932
Т.е. если бит разрешения установлен, то от момента установки бита разрешения
ЗЫ,Цитата:
Если включена галка "Без первой паузы", цикл начинается с вызова функций, например макроса.
Если галка "Без первой паузы" выключена, цикл начинается с паузы, затем вызов, например макроса.
Чуть не забыл
Можно вызывать макрос "Максимально часто" - с периодом сканирования экрана, если использовать режим непрерывно!
Вложение 45933
Здесь тоже можно управлять вызовом через бит разрешения.