Мне бы не отладку, мне скомпилировать надо бы
Компиляция же на компьютере происходит
Вид для печати
Компилятор не выдвигает гипотез насчет наличия на устройстве тех или иных библиотек с теми или иными именами функций - поэтому, повторю, отладка возможна только на реальной панели. Пользователю необходимо самому отслеживать факт существования используемых функций - например, с помощью комментариев.
Но замечание понятно и справедливо - я передам разработчикам.
Хочу отметить, что конфигуратор не позволяет загрузить в панель проект с некорректным макросом.
Если подробнее, то переводит панель в режим загрузки и на этом останавливается, не начиная передачу данных. Перезагрузка панели возвращает её в обычный режим, со старым проектом, если не ошибаюсь.
Спасибо
Всем добрый день!
Как можно с помощью инструмента "Динамическое изображение" перебирать рисунки с прозрачным фоном?
Я где-то видел пример. Но сейчас не могу его найти к сожалению. Но точно видел и делалось это в конфигураторе в расширенном режиме как за мудрено.
А вариант с анимацией изображения я тоже рассматривал. В крайнем случае придется с ним повоевать.
Да это понятно что не предназначен. У меня доступ открыт. И когда-то я это делал. Но со временем забылось. Вот думал может у кого то остался примерчик или направили на нужную ветку темы.
Здравствуйте,
Думаем связать два МВ110-8АС (13 датчиков) по модбас с СП3хх для вывода/архивации данных, пара вопросов:
1. С какой ориентировочной сокростью/лагом может панель опрашивать модули? Раз в 5 сек, 10 сек, минуту?
2. Если записывать архив на флешку, можно ли как-то настроить сетевой доступ к флешке, может ли панель расшарить этот файл?
добрый день.
осваиваю СП307 с архивацией данных на усб. делаю так: тренд, в нём архивация в регистр PSW256, и элемент "Архивация на USB" с чтением из этого регистра.
под модбасу подцеплены два датчика, тягонапоромеры. опрос датчиков раз в 100 мс, тренд выводится с частотой раз в 1 с, чаще не умеет.
получаю строчки с нулевым значением, выглядит это так:
0,-739,2017-03-15,15:12:05
-1,-739,2017-03-15,15:12:05
0,-796,2017-03-15,15:12:06
0,-796,2017-03-15,15:12:06
0,-796,2017-03-15,15:12:06
0,-829,2017-03-15,15:12:07
0,-829,2017-03-15,15:12:07
0,-829,2017-03-15,15:12:07
0,-847,2017-03-15,15:12:08
0,-847,2017-03-15,15:12:08
0,-799,2017-03-15,15:10:09
0,-799,2017-03-15,15:10:09
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,-847,2017-03-15,15:12:08
-1,-780,2017-03-15,15:12:09
-1,-780,2017-03-15,15:12:09
-1,-780,2017-03-15,15:12:09
0,-821,2017-03-15,15:12:28
0,-821,2017-03-15,15:12:28
0,-838,2017-03-15,15:12:29
0,-838,2017-03-15,15:12:29
0,-844,2017-03-15,15:12:29
-1,-855,2017-03-15,15:12:30
-1,-852,2017-03-15,15:12:30
-1,-852,2017-03-15,15:12:30
0,-733,2017-03-15,15:12:31
0,-733,2017-03-15,15:12:31
0,-733,2017-03-15,15:12:31
0,86,2017-03-15,15:12:32
0,86,2017-03-15,15:12:32
0,86,2017-03-15,15:12:32
0,989,2017-03-15,15:12:33
0,989,2017-03-15,15:12:33
0,989,2017-03-15,15:12:33
0,1371,2017-03-15,15:12:34
0,1371,2017-03-15,15:12:34
0,1371,2017-03-15,15:12:34
-1,-143,2017-03-15,15:12:35
-1,-143,2017-03-15,15:12:35
-1,-143,2017-03-15,15:12:35
0,-542,2017-03-15,15:12:36
0,-542,2017-03-15,15:12:36
0,-542,2017-03-15,15:12:36
0,-659,2017-03-15,15:12:37
0,-659,2017-03-15,15:12:37
0,-659,2017-03-15,15:12:37
0,-719,2017-03-15,15:12:38
0,-719,2017-03-15,15:12:38
0,-724,2017-03-15,15:12:38
0,-751,2017-03-15,15:12:39
0,-751,2017-03-15,15:12:39
0,-751,2017-03-15,15:12:39
0,-768,2017-03-15,15:12:40
0,-768,2017-03-15,15:12:40
0,-768,2017-03-15,15:12:40
0,-730,2017-03-15,15:12:41
0,-730,2017-03-15,15:12:41
0,-730,2017-03-15,15:12:41
0,-397,2017-03-15,15:12:42
0,-637,2017-03-15,15:12:42
0,-637,2017-03-15,15:12:42
-1,385,2017-03-15,15:12:43
-1,191,2017-03-15,15:12:43
-1,385,2017-03-15,15:12:43
-1,-720,2017-03-15,15:12:26
0,-799,2017-03-15,15:10:09
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,0, 0-00-00,00:00:00
0,2002,2017-03-15,15:12:44
0,2002,2017-03-15,15:12:44
0,2002,2017-03-15,15:12:44
и ещё время дублируется.
что я делаю не так ? и можно ли в тренде поставить опрос менее, чем в 1 сек ?
Чтобы не дублировались записи поставьте галку "Очистить регистры после экспорта"
Вложение 30148
Тогда 100 выборок будут записываться на USB одним массивом один раз в 100 сек.
Вложение 30149
И никаких дублирований или пустых данных не будет!
Так делать нельзя!Цитата:
осваиваю СП307 с архивацией данных на усб. делаю так: тренд, в нём архивация в регистр PSW256, и элемент "Архивация на USB" с чтением из этого регистра.
под модбасу подцеплены два датчика, тягонапоромеры. опрос датчиков раз в 100 мс, тренд выводится с частотой раз в 1 с, чаще не умеет.
Потому, что архивация в тренде делается не в регистр PSW256!
Регистры PSW256 и PSW258 - адреса кольцевого буфера хранилища для тренда. В тих регистрах нет Ваших данных.
По этому для "Архивация на USB" укажите такие же регистры Modbus, как и для тренда.
По поводу "поставить опрос менее, чем в 1 сек".
Для тренда и для "Архивация на USB" можно так.
Нужно в настройках использовать архивацию - По фронту бита
Вложение 30151
А в качестве бита PSB3 или PSB6.
И вообще у Вас масло масляное получилось
Если есть тренд, то соответственно уже есть архив, тогда зачем еще один такой же архив делать с помощью "Архивация на USB".
А уж если и регистры хранилища для обоих Вы сделали одинаковыми, то тренд каждую секунду перезаписывает архивные данные архивации на USB. А Архивация на USB тут же перезаписывает архивные данные тренда.
Используйте вместо "Архивация на USB" ф.область с функцией экспорта в CSV. В руководстве СП300 есть готовый пример.
спасибо, буду пробовать и осваивать. к сожалению, я несколько отстал в своих знаниях, надо навёрстывать.
галку "очистить записи после экспорта" я ставил, дубляжа стало меньше, но он остался. объясню, почему я сделал через PSW256 - напрямую писать из регистров модбаса оно почему-то не хотело. возможно, потому, что флешка была не пустая - это обнаружилось уже потом, и файловая система была FAT32, не FAT. переформатировал в FAT, стало чисто, пусто и вообще начало писать. сам по себе тренд вырос именно из необходимости архивировать данные на флешку, так он сам по себе не нужен. но, когда я пытался писать напрямую из регистров, ничего не получалось. я попробую тренд убрать и прочее, в соответствие с рекомендациями. спасибо. по результатам отпишусь.
Приветствую.
Скажите, стоит задача написания программы, контроллер ПЛК110,
панель СП310-Р.
Заказчик просит еще чтоб была WEB визуализация, есть ли такая возможность у данной панели
или это как то подругому нужно решать?
Добрый день, прошу помощи зала, не удаёться связать панел СП310Р и ПЛК 110-24 32.к.м. В панели нарисовал кнопку . присвоили ей адрес PSB 256, скорость 9600, в ПЛК в конфигурации добавил модуль RS 485_1, универсальный модбайс девайс (NET MODE - TCP, MODYLE SLAVE ADRES - 1, BY POLL TIME) , 8-bit input module (REGISTER adres 256, COMAND - READ COIL STATUS). Внулевом бите этого регистра указал переменную MAO_1_OTK_CP_IN которая должна переключаться в программе по нажатию кнопки на экране и ничего не происходит. Где ошибка не могу найти..Вложение 30483Вложение 30483
Ту проект панели
1. Не понятно по какому интерфейсу будет связь.
Если по RS 485, то зачем для UMD задан ежим работы TCP, должен быть Serial
Вложение 30488
2. ПЛК в настройках RS 485 задано - нет контроля четности
Вложение 30485
А в настройках порта панели - есть (Контроль на четность)
Вложение 30486
3. ПЛК для MAO_1_OTK_CP_IN адрес задан 256
Вложение 30487
А для переключателя на экране панели почему-то адрес уже PSB300
Вложение 30489
А должен быть PSB256
Petera, спасибо. С регистром PSB 300/256 в реальностивсе было правильно это zip. файл был сохранён до того как я изменил его в ПЛК. Заработало сразу как я исправил бит четности и NET MODE выставил SERIAL.
Проект в составе ПЛК-110(М02)- СП307(слэйв) по RS-485 и быстрые выходы по таймерному прерыванию 25кГц.
В конфигурации на чтение из панели около 30 регистров с числовыми значениями (коды клавиш, уставки).
Реакция на нажатие клавиши СП307 около 3-4 сек, что недопустимо.
На форуме встречал предложения для уменьшения числа элементов для чтения из панели применить "String input module".
Вопрос - как сформировать строку в панели в последовательности регистров (преобразовать числовые значения в ASCII коды
аналогично оператору CoDeSys "word_to_string")? Может существует незадокументированная HMI Api Function для макросов.
Какой такой "word_to_string"?
Предложенный способ повышения скорости обмена с панелью с использованием в мастере ПЛК модулей String output module/String input module здесь http://www.owen.ru/forum/showthread....l=1#post141316
Смотрите внимательно пример программы для ПЛК
Вложение 30523
Никаких преобразований числовых значения в ASCII коды здесь нет
А панель вообще не знает о том, что ее регистры читаются какими-то String input module. Т.е. никаких дополнительных телодвижений в проекте для панели делать не требуется, в том числе и преобразовать числовые значения в ASCII коды.
ЗЫ, Т.к. ссылка больше не работает привожу описание способа использования String output /String input модулей
1. Определяем приемлемое количество регистров в одном запросе, у меня в примере будет 16 регистров в одной группе.
Для каждой группы будем использовать ОДИН модуль String
Слишком много в группе делать не стоит.
а) для модуля String есть "магическая" цифра 80 (перманентное число байт в модуле String), по этому если модулей String будет больше одного, то в каждом можно использовать не более 80 байт или 40 регистров. Так получилось, что в реальном распределении памяти адрес каждого последующего модуля String совпадает с адресом 41 регистра предыдущего и все регистры старше 41 будут переписываться информацией из первых регистров последующих модулей.
Больше 40 регистров можно если модуль String всего один.
2.Помещаем String output и String input модули в разные UMD
Для UMD с String output задаем режим работы по изменению значения
Вложение 48590
В String output используем для записи 16 функцию
Вложение 48586
3. Смотрим в конфигурации какие адреса получились для модулей String, например AT %QB7.1.0.0 и/или AT %QB7.1.1.0 и/или %QB7.1.2.0 и т.д
Вложение 48587
4. Создаем в разделе описания переменных нужное количество групп регистров в виде массивов вида Blok1 AT %QB7.1.0.0:ARRAY [0..15] OF WORD
где после AT приводим адреса из конфигурации.
Вложение 48588
число байт в модуле String д.б. в два раза больше числа регистров в группе
Вложение 48589
5. В программе обращаемся к элементам массивов
Вложение 48591
Вот еще один пример - чтение из панели значений Float
Вложение 30524 Вложение 30525
Petera, спасибо за оперативный ответ.
С символьной переменной я связался по причине определения str1 в конфигураторе
Вложение 30532
которая в результате читалась в ПЛК как str1='', т.е. пустой строкой.
Сегодня же попробую изменить чтение регистров предложенным Вами способом.
Не понял только один момент - почему Вы ограничиваете в указанном примере чтение-запись
в одном канале (переменной) 16-ю регистрами (amount byte=32), ведь максимальное значение
равно 249 байтам и указав (amount byte=40) можно обойтись одним каналом.
И ещё один момент - функция "копировать регистр" из битового PSB в слово PSW
Вложение 30533
работает при офлайн эмуляции при PSB кратном 8 (как справедливо Вами указано в одном из
Ваших сообщений), а на СП300 приведенная на изображении функция читает значения из
начального адреса, кратного 16 (PSB288) в PSW296.0.???
Ограничения в 16 регистров нет, это значение у меня только для примера. Кроме того в следующем посте http://www.owen.ru/forum/showthread....l=1#post176633 более подробный ответ, почему в моем примере в группе по 16 регистров.
Однако в реальности 249 байт не получается, для String есть "магическая" цифра 80 (перманентное число байт в модуле String), по этому если модулей String будет больше одного, то можно использовать только 80 байт или 40 регистров, объяснения здесь http://www.owen.ru/forum/showthread....l=1#post177886
По поводу "копировать регистр" из битового PSB в слово PSW.
Не совсем понял Ваш вопрос.
Могу сказать только, что начальный адрес PSB должен быть ОБЯЗАТЕЛЬНО кратным 16. Это будет работать и в эмуляторе и в панели.
Если PSB выбирать кратном 8, то такой вариант правильно работает ТОЛЬКО в эмуляторе. Для реальной панели этот вариант не проходит.
Petera, в Ваших примерах ссылка в конфигураторе на адресное пространство типа IB7.2.0 (входы).
У меня почему-то QB, хотя вставлен "String input module"
Вложение 30536Вложение 30536
Это глюк конфигуратора или в объявлении переменных указывать типа
(Blok1_fromPanel AT %QB6.2.0.0:ARRAY [0..39] OF WORD)?
Ребят была одна проблемы, но после обнаружилась вторая. По первой: в проекте создал ОКНО ТРЕВОГ PSB 260. Создал кнопку с алгоритмом пока нажата PSB 260 = 1, Для контроля к тому же биту прикрутил лампочку. В эмуляторе нажимаю кнопку пояаляеться ранее созданное ОКНО ТРЕВОГ. Квитирую окно кнопкой OK в нём а оно не исчезает, хотя PSB 260=0 (сужу по индикаторной лампе на панели). В настройках вызов окна выбран 1 раз. Пробовал на реальной панели, картина таже самая.
И вторая проблема,она скорее связана с неисправностью самой панели, элименты на экране после 3 минут работы проподают при касании пальцем любой области, если экрана не касаться то они будут видны, потом снова появляються.
1. У вас в окне тревог на кнопку ОК привязана функция Открыть окно. Исправьте на Закрыть окно.
2. Попробуйте в настройках проекта для параметра Интервал поставить "Нет заставки" (сейчас у вас там как раз 3 минуты) - возможно, проблема в этом.
Вложение 30567
Спасибо, не знал что кнопка отдельно настраиваемый элимент. С второй проблемой не решилось. поеду в понидельник в техподдержку
С ичезновением элиментов тоже разобрался. Меню ФАИЛ_вкладка_ОБЩИЕ_ Заставка нужно выбрать НИКОГДА. Тогда ничего не исчезает, пока..
Подскажите, а есть ли возможность использовать в качестве аналогового дисплея ну хотябы из КДС 3.5 или ещё какии нибудь, уж больно варианты которые предлогает конфигуратор СП300 скромные, хоть вообще не используй их...
Подскажите, пожалуста, если я использую регистр PFW (энергонезависимый) чтобы сохранить уставку температуры которая будет передоваться в ПЛК при помоши ЦИФРОВОЙ ВВОД на панели СП 300,Какой подэлимент мне необходимо добавит в Universal Modbus device в КОНФИГУРАЦИИ ПЛК чтобы ПЛК его прочел ?
Real input module
Вложение 30675
Только не забывайте, что в настройках UMD нужно для параметра Byte Sequence установить значение "Native"
Вложение 30676
Всем добрый день!
Начал воевать с макросами, а точнее с операциями связанные с битами регистров. Делаю такую запись и все работает (управление первым битом регистра PSW320)
if(PSW[320]&0x01)
{
PSW[318]=PSW[318]&~(1<<0);
PSW[318]=PSW[318]&~(1<<1);
}
Далее делаю так не работает(управление 2 битом PSW320)
if(PSW[320]&0x02)
{
PSW[318]=PSW[318]&~(1<<0);
PSW[318]=PSW[318]&~(1<<1);
}
вношу небольшое изменение знаком "~"
if(PSW[320]&~0x02)
{
PSW[318]=PSW[318]&~(1<<0);
PSW[318]=PSW[318]&~(1<<1);
}
Так вот встает вопрос как мне точно обращаться к биту регистра в условии. Где можно посмотреть точный синтаксис. Может есть какое исправленное описание. А то ошибки хелпера сильно утомляют)