PDA

Просмотр полной версии : Панели оператора СП3xx. Вопросы и ответы



Страницы : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17

VaBo
08.01.2018, 16:24
Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?

Евгений Кислов
08.01.2018, 16:55
Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?

1. Да.
2. В подавляющем большинстве случаев никаких негативных эффектов не будет.

vniko
09.01.2018, 12:45
Евгений, немного уточню и расширю вопросы VaBo.
1. Все-таки можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать?
2. Можно-ли в Глобальном макросе написать программку (не функцию) и вызывать Пользовательский макрос? И как это сделать?

Применение для 2.:
Сейчас так: Глобальная Функциональная область каждую секунду вызывает Пользовательский макрос.
Но хотелось бы так: В Глобальном макросе проверяется секундный бит (PSB4) и вызывается Пользовательский макрос (то есть без создания Глобальной Функциональной области).

petera
09.01.2018, 13:09
Евгений, немного уточню и расширю вопросы VaBo.
1. Все-таки можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать?
2. Можно-ли в Глобальном макросе написать программку (не функцию) и вызывать Пользовательский макрос? И как это сделать?

Применение для 2.:
Сейчас так: Глобальная Функциональная область каждую секунду вызывает Пользовательский макрос.
Но хотелось бы так: В Глобальном макросе проверяется секундный бит (PSB4) и вызывается Пользовательский макрос (то есть без создания Глобальной Функциональной области).

Глобальный макрос сам по себе не работает.
По этому без ф.области не обойтись. А в ф.облсти можно вызывать только обычный макрос.

ЗЫ.

можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать

Нельзя.
Но если нужные функции написать в глобальном макросе, то их можно вызывать в любом пользовательском макросе
Например
Глобальный макрос
35006
содержит три функции

Имеется два пользовательских макроса
Макрос Таймер
Измеряет продолжительность включенного состояния бита PSB300 в секундах (дискретность 0,1 сек)
35007

Макрос генерации случайных чисел в диапазоне от А до В
35008

Евгений Кислов
09.01.2018, 13:15
Евгений, немного уточню и расширю вопросы VaBo.
1. Все-таки можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать?
2. Можно-ли в Глобальном макросе написать программку (не функцию) и вызывать Пользовательский макрос? И как это сделать?

Применение для 2.:
Сейчас так: Глобальная Функциональная область каждую секунду вызывает Пользовательский макрос.
Но хотелось бы так: В Глобальном макросе проверяется секундный бит (PSB4) и вызывается Пользовательский макрос (то есть без создания Глобальной Функциональной области).

1. Да. Прикладываю пример.
35005

2. Нет.

vniko
09.01.2018, 17:37
Евгений и Петр, спасибо за подробные разъяснения.

Получается, что имеет право на существование следующая модель:
Создаем Пользовательский макрос, например с именем Main, вызываемый непрерывно Глобальной Функциональной областью.
В Main по необходимым условиям вызываем другие Пользовательские макросы.

Остаётся только вопрос с "режимом выполнения" - параллельный или последовательный. Как он в описанном случае устанавливается?

Правильно ли я понимаю, что "режим выполнения" имеет значение только для нескольких макросов в одной Функциональной области, т.е. определяет как им выполняться либо поочередно, либо одновременно?

Евгений Кислов
09.01.2018, 19:07
Правильно ли я понимаю, что "режим выполнения" имеет значение только для нескольких макросов в одной Функциональной области, т.е. определяет как им выполняться либо поочередно, либо одновременно?

Нет.

Если макрос выполняется последовательно - на на время его работы останавливаются все остальные процессы (отрисовка визуализации, обмен через элементы и т.д.).
Если параллельно - то остановки не происходит, каждой из задач достается сколько-то квантов времени.

Разумный пример использования параллельного режима - работа с файлами или другие ресурсоемкие операции.

nensist
14.01.2018, 00:49
Подскажите пожалуйста как из панели передать текстовую строку в ПЛК110. панель master, плк slave. требуется передача до 20 символов

Евгений Кислов
14.01.2018, 09:55
Подскажите пожалуйста как из панели передать текстовую строку в ПЛК110. панель master, плк slave. требуется передача до 20 символов

Посмотрите пример "Настройка обмена с ПЛК CoDeSys 2.3", там это есть. Ссылка в подписи.

atlet008
15.01.2018, 07:17
Подскажите пожалуйста, существует ли возможность в панели СП310Р работать со структурами через глобальный макрос. Встроенный компилятор вроде как понимает написанный код через typedef struct, а вот объявить переменную с этой структурой уже не позволяет, ругается.
35103
35104

Евгений Кислов
15.01.2018, 07:56
В глобальном макросе объявляются только переменные и прототипы функций. Пользовательский код пишется в пользовательских макросах.

См. пример во вложении.

Соответственно, можно было бы точно также создать в глобальном макросе прототип функции и внутри него работать со структурой.

VaBo
16.01.2018, 18:42
Господа, прошу подсказки:
Панель - слейв, PLC - мастер. Можно ли средствами панели определить, что мастер прочитал данные из определенного регистра?
Протокол (вероятно) Modbus TCP (с ним еще не работал).
Смысл задачи - организовать в панели некий буфер команд для мастера, чтобы он постоянно вел опрос только одного регистра (при нескольких панелях это значительно ускорит процессы). И да, мастер периодически пишет в другие регистры.
Пока решение с поверхности - мастер после чтения команды ( !=0) возвращает в регистр 0, панель это видит и сдвигает буфер. Но некрасиво как-то...

Евгений Кислов
16.01.2018, 19:38
А за счет чего вы ожидаете ускорение процессов? И о каких процессах, собственно, речь?

VaBo
16.01.2018, 23:30
А за счет чего вы ожидаете ускорение процессов? И о каких процессах, собственно, речь?
Допустим, есть около 80 дискретных точек управления арматурой, часть на вх\выходх PLC, еще часть на УУВыв (в других щитах). Фактическое состояние каждой точки (подано напряжение или нет, включился контактор , или нет) контролируют соответсв. кол-во УУВв (ну и входы PLC). Это сидит на одной шине.
На второй - пять (пока 4) СП307, с который возможно каждую точку выключить/выключить (открыть/закрыть и пр.), плюс зарезервировать еще N команд, которые управляют оговоренными одновременными комбинациями точек.
Если каждую точку управления описывать битом в слове, то слов таких получится примерно 8-10 (140-160 команд). Т.е PLC должен непрерывно опрашивать по 10 слов с 5 панелей, давать команду для УУВыв, считать состояние его выходов и вернуть его для подверждения и визуализации в 5 панелей (это я делаю по 0-му адресу, с этим проще).
Задача для меня - получить минимальнейшее время отклика между касанием тач-скрина и визуализацией изменившегося состояния арматуры. Желаемое значение - 1 секунда.
Поэтому хочу выстроить команды пользователя в FIFO, все равно чаще секунды на баттоны не нажмет, а опрашивать не 10, а 1 регистр в каждой панели с возможной текущей командой.
Так понятней?

Евгений Кислов
17.01.2018, 06:58
Если регистры расположены последовательно и вы считываете их групповым запросом - в контексте Modbus TCP разница затрачиваемого времени между этим вариантом и чтением одного регистра стремится к нулю.

Отвечая на поставленный вопрос


Можно ли средствами панели определить, что мастер прочитал данные из определенного регистра?

Специальных средств нет, так как слэйв ничего не знает о мастере (если только мастер сам ему не сообщит).

Как вы справедливо заметили - это можно решить дополнительными командами от мастера и обработкой их в панели через макросы.
Но в этом варианте вы тратите дополнительные время на посылку этих команд. Поэтому чтение групповым запросом всех нужных регистров мне кажется более рациональным вариантом.

VaBo
17.01.2018, 08:13
Если регистры расположены последовательно и вы считываете их групповым запросом - в контексте Modbus TCP разница затрачиваемого времени между этим вариантом и чтением одного регистра стремится к нулю.
Печалька, но я не разобрался с "бибками"...
А из конфигуратора, как я понимаю (касаемо RS485) имеем только одиночные запросы.

kost2
17.01.2018, 08:15
Как обнулить диапазон регистров? допустим мне надо, чтобы по нажатию кнопки регистры с PSW 500 по PSW 1000 заполнялись нулями. Что-то даже в макросах нет ни намека на циклы управляемые счетчиком или условием. Вижу только один выход - копировать группу регистров, но тогда нужно неприкосновенную область в памяти того же размера

Евгений Кислов
17.01.2018, 08:33
Как обнулить диапазон регистров? допустим мне надо, чтобы по нажатию кнопки регистры с PSW 500 по PSW 1000 заполнялись нулями. Что-то даже в макросах нет ни намека на циклы управляемые счетчиком или условием. Вижу только один выход - копировать группу регистров, но тогда нужно неприкосновенную область в памяти того же размера

Вот пример цикла со счетчиком:



int i;

for ( i = 0; i < 501; i++ )
{
PSW[500+i]=0;
}

kost2
17.01.2018, 08:39
Вот пример цикла со счетчиком:



int i;

for ( i = 0; i < 501; i++ )
{
PSW[500+i]=0;
}


спасибо, странно, что в мануале об этом ни слова

Евгений Кислов
17.01.2018, 08:42
В следующей версии - будет.

Евгений Кислов
17.01.2018, 08:46
Печалька, но я не разобрался с "бибками"...
А из конфигуратора, как я понимаю (касаемо RS485) имеем только одиночные запросы.

Справедливо, ПЛК1хх из конфигуратора действительно поддерживают только одиночные запросы.
Можно для опроса использовать 32 bit input module - это сократит число запросов вдвое (от 8-10 до 4-5).

kost2
17.01.2018, 08:46
Еще вопрос, память PFW >= 4096 используется для таблиц, графиков, архивов. Если я не использую ничего из этого могу ли использовать эту память на свое усмотрение?

Евгений Кислов
17.01.2018, 08:48
Еще вопрос, память PFW >= 4096 используется для таблиц, графиков, архивов. Если я не использую ничего из этого могу ли использовать эту память на свое усмотрение?

Да, конечно. А если не используется авторазмещение для графиков-таблиц-архивов - то можно всю память так использовать.

petera
17.01.2018, 10:09
Печалька, но я не разобрался с "бибками"...
А из конфигуратора, как я понимаю (касаемо RS485) имеем только одиночные запросы.

Если в конфигурации ПЛК использовать обычные Register input module, то да - мастер в ПЛК будет делать только одиночные запросы.
И это справедливо как для RS485, так и для TCP.

Однако можно заставить ПЛК читать из панелей сразу все 8 - 10 регистров в одном запросе.
См. пример для ПЛК здесь http://www.owen.ru/forum/showthread.php?t=17207&p=141316&viewfull=1#post141316
35143

Т.к. у Вас число регистров из панели < 40, то все получится http://www.owen.ru/forum/showthread.php?t=21799&p=177886&viewfull=1#post177886

ЗЫ
Вы вроде будете использовать TCP?
В этом случае легко сделать все панели Мастером.
В ПЛК будет ОДИН слейв с несколькими TCP только с разными номерами портов
35144

Соответствующие порты использовать в настройках панелей
35145

35146

35148

35149

Здесь IP ПЛК 192.168.1.65 как пример.

Любой мастер(панель) имеет доступ к одним и тем же регистрам ПЛК.
Таким образом можно вводить данные с любой панели, асинхронно, без программных ухищрений

vniko
17.01.2018, 10:30
Здравствуйте, Евгений.
1. В Руководстве пользователя 1.1 написано: "Область авторазмещения представляет собой участок памяти PFW (регистры 4096 – 4000000), который недоступен пользователю для записи."
В РП недостоверная информация? Как к этому участку памяти обращаться, в том числе из макросов?

2. Бросается в глаза ошибка в РП 1.1 на стр.181 п.6 "Запись ВЫКЛ (0) в бит регистра":
Код макроса: PSW[400] = PSW[400] & (0<<4); - весь регистр будет всегда 0!

3. Экспериментировал с чтением/записью в PLC через глобальную Ф.область (через 1 сек.): 16 регистров чтения, 1 бит чтения, 1 бит записи.
Если обмен организован через макрос в последовательном режиме, наблюдается подтормаживание реакции панели на нажатия и отрисовки визуализации.
Если обмен организован через макрос в паралельном режиме или функцией копировать регистры в ф.области, то подтормаживания не замечается.
Поэтому делаю вывод:
Функции в ф.области выполняются, если можно так назвать, в параллельном режиме.
Для макроса содержащего обмен с PLC, надо устанавливать режим выполнения - параллельный, как для "ресурсоемкой операции".

Евгений Кислов
17.01.2018, 10:38
1. Область размещения может не использоваться в проекте. Тогда - обращаться к участку памяти PFW4096–400000 можно также, как и к любым другим регистрам.

2. Да, справедливо - это уже поправлено.

3. Совершенно справедливо, что для ресурсоемких макросов стоит устанавливать параллельный режим выполнения.

ARMorry
19.01.2018, 17:29
Добрый день!

В у фкнкции "Import CSV" есть возможность указать имя файла и из Регистра.

Предположим мы создаем элемент текстовый ввод по адресу этого регистра.
Тогда импорт работает только в том случае если поле ввода полностью заполнено.

Не ясно что делать в случае если длинна имени файла меньше "значения" регистра*2. (см фото). Или хотябы если имя файла нечетное.

35207

Евгений Кислов
19.01.2018, 18:36
Округлите до ближайшего большего четного.

И обратите внимание на этот пример:
http://www.owen.ru/forum/showthread.php?t=24866&p=237124&viewfull=1#post237124

ARMorry
19.01.2018, 19:39
Простите.. Я совсем не понял что округлять и как. Пример я уже видел ранее

например если файл называется ABC.csv или ABCABCABC.csv и оператору надо ввести это имя в панель и загрузить. Пример рассматривает уже заранее заданные имена.

Евгений Кислов
19.01.2018, 19:50
Простите.. Я совсем не понял что округлять и как. Пример я уже видел ранее

например если файл называется ABC.csv или ABCABCABC.csv и оператору надо ввести это имя в панель и загрузить. Пример рассматривает уже заранее заданные имена.

Я все же рекомендую вам внимательно посмотреть его еще раз.
Он демонстрирует как импорт файлов как по заранее заданным именам, так и по динамическим - вводимых оператором.
Соответствующие элементы расположены в правой части экрана.
При этом путь к файлу включает 7 символов; в элементах импорта и текстового ввода используются по 4 регистра (4 регистра = 8 символов).

nensist
22.01.2018, 00:23
Вопрос такого плана.
На главном экране имеем текстовый дисплей и цифровой ввод.
Далее в проекте есть определенное кол-во окон (будет 100) в окнах имеем текстовый ввод.
Как сделать так чтоб при вводе в цифровой дисплей (главного экрана) значений от 1 до 100 на тестовом дисплее (главного экрана) переставлялись текстовые значения которые были введены в окнах. Соответственно привязка - цифр ввод уст 1 = текстовый дисплей отображает то что было прописано в ввод текста окна №1.
О проекте
Печь хлебопекарная
Цифровой ввод - выбор программы для исполнения на плк
Окна - уставки для программ в плк
Текстовый ввод в окнах - технологи вводят чтоб знать для какого продукта данные настройки и какой программе.
Текстовый дисплей на главном экране - чтоб знал пекарь что за программа для какого продукта им выбрана.
Как то так)) много букв)) проект прикрепляю
35230
На 3м экране пока сделана только одна кнопка для окна - далее будет 100, ну и окон 2 на программуПЛК = 200

Евгений Кислов
22.01.2018, 07:09
По-моему, самый простой вариант - использовать динамическую адресацию.
Прикладываю пример.

Введите данные с помощью текстовых вводов. Далее через Цифровой ввод вводите значения 1 или 2, переключая тем самым регистр, связанный с текстовым дисплеем.

35235

nensist
22.01.2018, 08:47
По-моему, самый простой вариант - использовать динамическую адресацию.
Прикладываю пример.

Введите данные с помощью текстовых вводов. Далее через Цифровой ввод вводите значения 1 или 2, переключая тем самым регистр, связанный с текстовым дисплеем.

35235

Спасибо большое, а то что то не мог понять как эта динамическая адресация работает.

vniko
24.01.2018, 11:47
nensist, а зачем Вам столько много окон?
Используя косвенную (динамическую) адресацию можно обойтись одним - двумя экранами или окнами.
Косвенную (динамическую) адресацию можно организовать и в ПЛК, если рецепты будут находиться в памяти ПЛК.

vniko
24.01.2018, 12:05
1. Область размещения может не использоваться в проекте. Тогда - обращаться к участку памяти PFW4096–400000 можно также, как и к любым другим регистрам.
Если создать элемент цифровой ввод для регистров PFW4096-4000000, то содержание этих регистров изменить невозможно.
Евгений, как-же производить запись в этот участок памяти?

petera
24.01.2018, 12:40
Если создать элемент цифровой ввод для регистров PFW4096-4000000, то содержание этих регистров изменить невозможно
Я бы не утверждал так категорично
Если очень хочется, то можно

https://www.youtube.com/watch?v=sXgvfHOamIo

vniko
24.01.2018, 14:08
petera, элемент создать можно, но попробуйте в эмуляции ввести значение для регистров PFW>=4096.
Я писал, что "СОДЕРЖАНИЕ" этих регистров не меняется!

petera
24.01.2018, 14:12
petera, элемент создать можно, но попробуйте в эмуляции ввести значение для регистров PFW>=4096.
Я писал, что "СОДЕРЖАНИЕ" этих регистров не меняется!

Так это глюки эмулятора.
Эмулятор - это не панель.

vniko
24.01.2018, 15:56
Да, petera, в панели работает.
Но если увеличить ограничение в Настройки проекта/Панель/Распределение памяти: Кол-во PFW с 4096 до, например, 65536, то область авторазмещения будет начинаться с 65536, а работать и в панели и в проекте можно будет до 128К!
То есть комфортно можно использовать и Flash память большого объема и авторазмещение для графиков-таблиц-архивов.
Мне, например, скоро потребуется для рецептов около 20К, а в проекте уже используется Историческая таблица в области авторазмещения.

petera
24.01.2018, 16:11
Мне, например, скоро потребуется для рецептов около 20К, а в проекте уже используется Историческая таблица в области авторазмещения.
Рецепты можно хранить и на USB флешке, если конечно панель с буквой Р
Тогда рецепты могут занимать значительно больше 20К.
Да и "приготовить" такие рецепты значительно проще - таблица в Exel

vniko
24.01.2018, 16:32
Да, первоначально думал, что придется использовать USB флеш, а тут тАкие возможности.
Флеш для производства не совсем приемлемый вариант, по крайней мере для нашего. И пыль и человеческий фактор, в том числе сохранность. И для выемки рецепта не надо лезть в USB, чтение файла - "ресурсоемкая" операция. А рецепты, предполагаю, будут загружаться, по мере дополнения, с флеш (*.csv) специально обученными людьми.

Evlord
28.01.2018, 07:23
имеется панель оператора ОВЕН СП307-Р и модули дискретного ввода ОВЕН MB110-16ДН (адр. 1), вывода ОВЕН МВ110-16Р (адр. 17), аналогового ввода ОВЕН МВ110-8А (адр. 33). все модули подключены через шлюз modbus tcp/modbus rtu.

сигналы с модуля дискретного ввода записываются в регистр панели PSW300 (word 16 бит), с модуля аналогового ввода 2 сигнала записываются в PSW 302 (float 32 бита) и PSW304 (float 32 бита) соответственно через функцию 03. биты управления с кнопок записываются в регистр PSW301 (word 16 бит), из регистра PSW301 битовая маска должна записываться функцией 04 в модуль ввода через шлюз modbus tcp (настройки копирования на рисунке), но этого не происходит. настройки шлюза и модуля вывода перепроверял, всё как положено. в чём может быть причина?
35303

Evlord
28.01.2018, 10:33
Если шлюз стоит удаленно и работает совместно с модулями, то смотрите настройки самого шлюза, и на панели у вас что за девайс прописан, адресацию на модулях сделайте кратным 8 пригодится на будущее.

в настройках шлюза прописан опрос модулей по указанным адресам 1, 17 и 33 в случае обращения на него мастера сети modbus tcp (панель ОВЕН). с модулей ввода опрос идёт нормально. на модуль вывода сигнал также приходит, но панель выводит ошибку соединения при обращении панели к модулю по modbus tcp. опрос модуля вывода панелью через шлюз идёт с интервалом в 1 секунду через элемент Функциональная область, как опрос и других модулей через шлюз

Evlord
28.01.2018, 12:51
проект панели во вложении, а вот настройки модулей и шлюза EKI-1221 будет выложить сложновато, если только позже. что касается настроек модуля вывода, то все настройки базовые, кроме скорости 115200 и адреса в сети.
в двух словам поясню. панель СП307 по сети ethernet по протоколу modbus tcp опрашивает 3 модули ввода/вывода, подключенные к шлюзу EKI-1221 и описанные выше. полученные данные выводятся на панели, а данные по температуре и давлению с модуля мв110-8а выдаются на порт Download панели, который потом опрашивается архиватором МСД200 и архивируются

Evlord
28.01.2018, 13:01
есть конечно вариант порулить задержками на ответ в модуле или в шлюзе, но поможет ли, так как опрос модулей циклический

Evlord
28.01.2018, 14:57
Посмотрел мельком проект все нормально, за исключением следующего, вы передаете данные 4х50 из функциональной области какой функцией? и какая функция должна быть по инструкции на модуль? создайте копировать группу регистров, но копируйте один регистр должно помочь, наступал на эти грабли только давно, думаю что сейчас там тоже не чего не изменилось с тех пор.

спасибо, попробую. что касается функции 04, то она должна и читать, и записывать регистры, вроде как. 03 - чтение, 04 - чтение/запись. хотя где-то применяется функция 16 для записи. вообще, пробовал по-разному - записывал отдельный бит через кнопку функцией 1 в регистр 0 например, записывал значение 65535 через панель в битовую маску. бесполезно. ни один из выходов так и не включался

SokolovS
28.01.2018, 18:53
Модули МУ не понимают команду записи одного регистра
При записи 4x50 именно такая команда и применяется
Вариантов решения проблемы несколько:
а) Писать одновременно в несколько регистров ШИМ, тогда будет применяться команда множественной записи, как уже было предложено выше.
б) Использовать скрипт, который будет самостоятельно формировать посылку нужной команды даже для одного регистра, например, так: http://www.owen.ru/forum/showthread.php?t=8604&p=150039&viewfull=1#post150039
в) Использовать специальный регистр, который появился в 3xx серии, подробнее здесь: http://www.owen.ru/forum/showthread.php?t=23024&p=191299&viewfull=1#post191299
Последний вариант правильнее, на мой взгляд.

Евгений Кислов
29.01.2018, 12:01
В данном случае поможет только вариант а) - использование регистров ШИМ (0-15) для управления выходами.

Скрипты и специальные регистры не работают в случае с Modbus TCP.

Евгений Кислов
29.01.2018, 12:21
С отсутствием явной необходимости, в случае скриптов - еще и со сложностью реализации.
В данном случае проблема возникла из-за использования шлюза TCP/RTU для опроса модулей - это достаточно редкая ситуация по моему опыту.

Наши Ethernet-модули Mx210 будут, естественно, поддерживать обе функции записи (6/16), и с ними никаких проблем не будет.

SokolovS
29.01.2018, 17:08
В данном случае поможет только вариант а) - использование регистров ШИМ (0-15) для управления выходами.

Скрипты и специальные регистры не работают в случае с Modbus TCP.

Скрипт не отработает?
Посылка скриптом в Ethernet невозможна?

Евгений Кислов
29.01.2018, 17:55
Скриптом можно отправить данные по Modbus TCP, но функция записи будет выбрана условно-автоматически.
Работа с сокетами на низком уровне (как с последовательным портом - открыть, отправить массив байт, принять массив байт, закрыть) - в скриптах не поддерживается.

SokolovS
29.01.2018, 18:05
Скриптом можно отправить данные по Modbus TCP, но функция записи будет выбрана условно-автоматически.
Работа с сокетами на низком уровне (как с последовательным портом - открыть, отправить массив байт, принять массив байт, закрыть) - в скриптах не поддерживается.
Планируется ли реализовать эту возможность?

Евгений Кислов
29.01.2018, 19:07
В обозримом будущем - нет.
При наличии потребности в подобном функционале лучше обратить внимание на линейку сенсорных панельных контроллеров СПК.

Evlord
29.01.2018, 19:19
а есть ли хотя бы примеры работы с групповыми запросами для управления модулем через modbus tcp?

Евгений Кислов
29.01.2018, 19:31
а есть ли хотя бы примеры работы с групповыми запросами для управления модулем через modbus tcp?

Вам надо сделать следующее:

1. Определить в панели группу из 16 регистров, которые будут использоваться для управления выходами модуля. Пусть это будут PSW300-315.
2. В элементе Функциональная область выберите действие Копировать группу регистров, регистр источника - PSW300, регистр назначения - 4x0 (а также укажите нужный порт и нужный адрес слэйва), количество - 16. Условие запуска функциональной области - циклически или непрерывно. Желательно сделать ее глобальной (ПКМ на элемент - команда Сделать глобальным).
3. Записывайте в регистры PSW300...315 значение 1000, когда необходимо включить выходы 1...16. Записывайте 0, когда необходимо их отключить.

Evlord
29.01.2018, 19:40
т.е. при нажатии, например, Функциональной кнопки "пуск" у нас значение 1000 будет записываться в PSW300; посредством кнопки "стоп" 1000 будет записываться в регистр, например, PSW301; а посредством Функциональной области это значение группой регистров из таких "1000" будет записываться в модуль. я всё правильно понимаю?

Евгений Кислов
29.01.2018, 19:42
Да, все верно.

Евгений Кислов
29.01.2018, 19:57
Я имел в виду следующее - при использовании в макросе функции Writes для записи _одного_ регистра по Modbus TCP - панель автоматически использует функцию 0x06 (а не 0x10, как можно было бы подумать).

Евгений Кислов
29.01.2018, 20:18
Предполагаю, Evlord подразумевал, что у него старт и стоп процесса управляются верхними уровнями разных дискретных выходов, а не верхним и нижним уровнем одного выхода.

Евгений Кислов
29.01.2018, 20:26
Даже в случае использования Writes для записи _одного_ регистра будет использована функция записи _одного_ регистра (Write Single Register).

За все время существования СП3хх я подобную ситуацию (с "мучениями народа" (c) ) вижу второй раз. Первый раз был с пневмоостровом от Festo (тоже не поддерживал функцию 0x06). Второй - вот сейчас, при использовании конвертера интерфейсов Ethernet/RS-485 для подключения к панели (которая имеет на борту 2 RS-485) модулей ввода-вывода, которые поддерживают только RS-485.

Это, скажем так, не позволяет считать задачу внесения каких-либо изменений по этому поводу актуальной.

Евгений Кислов
29.01.2018, 20:38
Поскольку конструктив закончился - я убедительно прошу на этом завершить дискуссию.

Evlord
29.01.2018, 21:57
Предполагаю, Evlord подразумевал, что у него старт и стоп процесса управляются верхними уровнями разных дискретных выходов, а не верхним и нижним уровнем одного выхода.

к модулю подключены для управления насосами по 3 реле для каждого из 4-х насосов. итого 12 штук. первые 4 выхода используются для дистанционного переключения ручного/автоматического управления. следующие 4 реле - для включения 4-х насосов (через нормально разомкнутые контакты), и следующие 4 реле (через нормально замкнутые контакты) - для отключения этих насосов. часть схемы собрана на релейной логике, потому пришлось и делать всё в таком варианте. в идеале, конечно, было бы лучше всю автоматику закинуть сразу в ПР200 например, подключив уровня и датчики давления и прочее... но как-то не сошлось, а по итогу всё пришло к тому, что огород в шкафу управления городить придётся ещё больший...

Vansanches
30.01.2018, 23:14
Добрый день, подскажите пожалуйста для новичка по циклам в макросе сп310.
Пример
WORD a=1;
WORD b=PSW[300];// цифровой ввод с двумя после запятой

while ( b>a)
{
a++;
};
PSW[302]=a;// цифровой вывод

На выходе все равно выходит введённое число
С уважением

Евгений Кислов
31.01.2018, 07:10
Добрый день.

Если правильно понял то, чего вы хотите - то надо объявить b как float.
Прикладываю пример.

Vansanches
31.01.2018, 23:39
Спасибо, все понял.

С уважением.

Evlord
01.02.2018, 21:05
а где можно найти подробное описание синтаксиса и операндов для скриптов панели? в справке и в инструкции маловато написано

Evlord
02.02.2018, 04:16
в общем, по всё тому же случаю. есть у насоса "ручное" и "автоматическое" управление, которое переключается через модуль и есть "ручное/автоматическое" управление, которое переключается ключом на щите управления. оба типа управления, на щите или с панели, выбираются ключом "местное/дистанционное" управление на щите управления насосами. можно управлять с панели, можно управлять с щита. панель находится удалённо от шкафа, потому и опрашивает модули через шлюз по ethernet. как бы, всё практические сделал, как нужно. осталось одно "но". нужно чтобы при переключении ключа "местное/дистанционное" на щите управления насосами выхода модуля для "автоматического" управления отключались. начал делать на макросах, но поскольку с описанием из справки и инструкции я как-то не подружился, то потому и спрашиваю

Evlord
02.02.2018, 19:08
Схематично было бы понятней, но я вас понял, наверное есть уже действующая обвязка схемы и вам приходится под неё плясать.
Укажите биты в панели что нужно переключать попробую что можно написать.

пришлось немного перелопатить конфигурацию панели, но тем не менее...
биты сигналов с переключателей местного/дистанционного управления на шкафу управления, принимаемые на модуль ввода, в регистрах панели - PSW300.08-PSW300.11. сигнал приходит с положения ключей "дистанционное".
регистры панели, записываемые панелью в модуль дискретного вывода при "дистанционном" включения "автоматического" управления - PSW350-PSW353.
как бы, электрически дистанционное автоматическое управление блокируется переводом ключа "местное/дистанционное" в положение "местное", но необходимо исключить автоматическое включение насосов при переходе из "местного" в "дистанционное", если ранее с панели было включено "автоматическое" управление.
логически вроде всё понятно, что регистрам 350-353 должно присваиваться значение 0 в случае отсутствия битов 300.08-300.11, но на практике всё иначе. получалось даже так, что 0 выставлялся в регистры и не принимал больше никакие другие значения при переводе ключей в положение "дистанционное".

Vansanches
02.02.2018, 19:47
Добрый вечер, подскажите ,пожалуйста, почему не компилируется, вроде все по инструкции.
BOOL Value=0;
Read(NET_0, 10, MODBUS_TCP_BIT_0X, 1, 0, TYPE_BIT, &Value);

Евгений Кислов
02.02.2018, 20:01
У вас, видимо, не добавлено ни одного TCP Slave.

Сделайте следующее:

1. Настройки проекта - Устройство - ПКМ на Сетевые настройки - Добавить
2. Добавьте на экран любой элемент (это важно)
3. Повторно выполните компиляцию

Vansanches
02.02.2018, 20:18
Добавил, но все равно пишет что не зарегистрированное имя MODBUS_TCP_BIT_0X35391

Евгений Кислов
02.02.2018, 20:31
Визуализируемый элемент добавьте - индикатор, например.

Vansanches
02.02.2018, 20:42
Спасибо!! заработало, но вопрос- Это работает только с визуализацией? просто мне достаточно не визуализировать некоторые входы-выходы.

С уважением, Александр.

Евгений Кислов
02.02.2018, 20:50
Нет, добавление элемента было необходимо, чтобы проект "обновился" и компилятор смог корректно отработать.
Элемент теперь можно удалить - компиляция все равно будет проходить успешно.

Vansanches
02.02.2018, 21:00
Огромное спасибо!
Понял,

С уважением, Александр.

Evlord
04.02.2018, 07:18
BOOL CH1_Avto,CH1_Pusk,CH1_Stop; WORD MU16[16];
//CH1
Read(HMI_LOCAL_MCH, 0, TYPE_PSW, 301, 0, TYPE_BIT, &CH1_Avto);
Read(HMI_LOCAL_MCH, 0, TYPE_PSW, 301, 4, TYPE_BIT, &CH1_Pusk);
Read(HMI_LOCAL_MCH, 0, TYPE_PSW, 301, 8, TYPE_BIT, &CH1_Stop);
if(CH1_Avto==0){
if(CH1_Pusk==1)MU16[4]=1000; else MU16[4]=0;
if(CH1_Stop==1)MU16[8]=1000; else MU16[8]=0;}
if(CH1_Avto==1)MU16[4]=0;MU16[8]=0;
//CH2

Writes(HMI_LOCAL_MCH, 0, TYPE_PSW, 400, 16, MU16);
return;
Сделал по вашему примеру предыдущего проекта, в ФО добавите копировать регистр из PSW400 в 4x0 релейного модуля укажете 16 регистров, да и сам макрос укажите первым в ФО, думаю дальше сами разберетесь.
Касаемо вашего проекта, что нужно знать и с чем столкнетесь.
На основном экране у вас ФО которое непрерывно будет вести запрос на чтение и на запись, это немного не правильно, записывать нужно только в том случае когда будут изменения с кнопок, это вам даст устойчивость системы, неплохо контролировать состояния МУ16.
Когда тестировал модули МВ_8а и МУ16 с СП307, пришёл к выводу, что связь должна идти с одного ФО либо полностью с макроса, я сделал выбор на макрос, почему сейчас объясню.
Дело в том, что в панели весь процесс обрабатывается по очереди, когда вы заполняете объектами экран, формируется та самая очередь, ее можно посмотреть в расширенном режиме если выделить все элементы на экране и с группировать в один объект. Кстати там можно и редактировать порядок выполнения. Есть тонкость и с кнопкой, когда вы нажмете и удерживаете ее процесс выполнения прекращается, не факт, что макрос не отработает, так как у кнопки имеется 4 сценария выполнения, и на момент нажатого то состояния будет циклически выполнятся, как только вы отпустите кнопку, сработает другой сценарий на отпускание кнопки и только потом дойдет очередь до следующих объектов в том числе и ФО (смотрим и эксперементируем с выполнением макроса параллельно либо последовательно). Можно в него и включить макрос. Но честно сказать в этом случае макрос может правильно не отработать я уже с этим сталкивался, и я пришёл к выводу, что с кнопками нужно работать тупо как включил либо выключил, надежно и практично, собственно и исходя этого нужно уже и разрабатывать схемы управления. ФО желательно сделать одно на 65535 экране, но оно появится только в расширенном режиме, но чтобы не углубляться глубже желательно опрос модулей сделать на матросе там же и все контролировать, но как все будет работать через шлюз сказать не могу, нужно все проверять.

сделал всё немного по-другому с учётом вашего примера. в общем, с модуля ввода копировал один регистр в другой регистр панели и инвертировал в нём биты сигнала дистанционного управления. сделал 4 отдельных небольших макроса, которые выполняются по появлению инвертированных битов. макрос сократил до простого - условия убрал, сделал просто запись нулевого значения переменной в нужные регистры модуля вывода. чтобы не захламлять и без того уже забитую ФО, сделал ещё 4 ФО, которые вызывают макрос по появлении сигнала на инвертированном бите.
по вашему примеру появилась проблема того, что выход модуля постоянно моргал. экспериментировал с порядком выполнения параллельным/последововательным, ставил вызов макроса в ФО до чтения регистров в ФО и после, делал в отдельной ФО вызов макроса. в общем, в циклическом режиме выполнения, как вы и говорили, макросы так себе работают, зато по наличию управляющих битов. строго выполняются. не пробовал лишь сделать циклическое выполнение макросов на опрос модулей.
сейчас другая уже проблема: использовать модуль дискретного входа для счёта импульсов, а также обнулять состояние счётчиков с панели. почитал руководство на модуль ввода 16ДН, регистры нашёл. вывел значения счётчиков, вывел 2 кнопки для обнуления. сделал 2 макроса, которые должны записывать значение 0 в регистры счётчиков. выполнение макросов сделал по нажатию кнопок обнуления... по итогу - не идёт. использовал запись слова со значением 0 в регистры модуля, так как запись переменной типа int вызывала подвисание панели и прекращение опроса модулей.

petera
04.02.2018, 08:58
... использовал запись слова со значением 0 в регистры модуля, так как запись переменной типа int вызывала подвисание панели и прекращение опроса модулей.
Это потому, что для записи даже ОДНОГО регистра модуль требует использовать команду модбас 16(0х10).
А панель по умолчанию использует для записи ОДНОГО регистра команду модбас 06(0х06).

Vansanches
08.02.2018, 13:17
Добрый день, подскажите , можно ли вставить выполнение макроса Б в цикл макроса А.


С уважением, Александр.

Евгений Кислов
08.02.2018, 13:23
Добрый день, подскажите , можно ли вставить выполнение макроса Б в цикл макроса А.


С уважением, Александр.

При необходимости - можно из тела одного макроса вызвать другой.
См. пример по ссылке:
http://www.owen.ru/forum/showthread.php?t=22915&p=266677&viewfull=1#post266677

Vansanches
08.02.2018, 13:37
При необходимости - можно из тела одного макроса вызвать другой.
См. пример по ссылке:
http://www.owen.ru/forum/showthread.php?t=22915&p=266677&viewfull=1#post266677

то есть при таком раскладе работать будет?
и макрос выполниться заданное количество раз.

while (a<b)
{
func2();
};

Евгений Кислов
08.02.2018, 13:47
Работать будет.

Но нужно контролировать значение a (если оно по какой-то причине не будет изменяться - попадете в бесконечный цикл).
Напоминаю, что при вызове макроса его локальные переменные переинициализируются - нужно либо сохранять результаты в память панели и при вызове макроса считывать их оттуда, либо использовать статические переменные (https://en.wikipedia.org/wiki/Static_variable).

Вообще, для выполнения какого-либо действия заданное количество раз лучше использовать цикл for.

Vansanches
08.02.2018, 13:52
Спасибо.
С уважением, Александр.

Vansanches
13.02.2018, 10:17
добрый день,подскажите пожалуйста.

пытаюсь сделать отсечку по достигнутому весу
что то не выходит

С уважением.

Евгений Кислов
13.02.2018, 10:26
Добрый день.

Поясните, пожалуйста, подробнее, что именно вы пытаетесь сделать.

Vansanches
13.02.2018, 10:33
открывается клапан PSB(300), идет наливка жидкости, отмеряется весами, при достижении значения B,клапан закрывается,

Евгений Кислов
13.02.2018, 10:34
открывается клапан PSB(300), идет наливка жидкости, отмеряется весами, при достижении значения B,клапан закрывается,

При каких условиях должен открываться клапан?

Vansanches
13.02.2018, 10:38
при запуске макроса

Евгений Кислов
13.02.2018, 10:42
при запуске макроса

Возможно, вы хотели чего-то подобного?

В этом примере кол-во налитой жидкости вводится с дисплея панели (см. Ввод).
При необходимости не составит труда указать вместо него нужный регистр устройства, откуда считывается это значение.

SokolovS
13.02.2018, 10:47
Возможно, вы хотели чего-то подобного?

В этом примере кол-во налитой жидкости вводится с дисплея панели (см. Ввод).
При необходимости не составит труда указать вместо него нужный регистр устройства, откуда считывается это значение.
В целом что ожидается получить не совсем ясно, но почему в данной реализации ежесекундно дёргается PSB если жидкость уже наполнена? Может, стоило перенести в else ветку включение бита?
Да, на визуализации это практически невозможно заметить, но всё же

Евгений Кислов
13.02.2018, 10:53
В целом что ожидается получить не совсем ясно, но почему в данной реализации ежесекундно дёргается PSB если жидкость уже наполнена? Может, стоило перенести в else ветку включение бита?
Да, на визуализации это практически невозможно заметить, но всё же

Да, совершенно справедливо - так будет правильнее.

Vansanches
13.02.2018, 11:01
подключил регистры все заработало, спасибо,
С уважением, Александр.

Vansanches
13.02.2018, 18:55
Добрый вечер.
еще вопросик пытаюсь перемножить регистры float,но что то идет не так.

if (*(float*)(PSW+404)>1)
{
cubsr=cub / *(float*)(PSW+404);

*(float*)(PSW+406)=cubsr;
Write(HMI_LOCAL_MCH, 0, TYPE_PFW, 305,0 , TYPE_DWORD, c);
*(float*)(PSW+408)=*(float*)(PSW+406)*c;
}

если перемножаю напрямую PSW305 из рецепта на вычисленный коэффициент PSW406 то все слетает, если так как на записи, то на выходе что то непонятное
С уважением, Александр.

Евгений Кислов
14.02.2018, 07:07
Добрый вечер.
еще вопросик пытаюсь перемножить регистры float,но что то идет не так.

if (*(float*)(PSW+404)>1)
{
cubsr=cub / *(float*)(PSW+404);

*(float*)(PSW+406)=cubsr;
Write(HMI_LOCAL_MCH, 0, TYPE_PFW, 305,0 , TYPE_DWORD, c);
*(float*)(PSW+408)=*(float*)(PSW+406)*c;
}

если перемножаю напрямую PSW305 из рецепта на вычисленный коэффициент PSW406 то все слетает, если так как на записи, то на выходе что то непонятное
С уважением, Александр.

Я так понимаю, вам нужен не Write, а Read.
И переменные DWORD/FLOAT следует выравнивать по четным регистрам. См. пример.

Для теста задавал PSW404=2.5 и c=2.
Результат корректный.

Vansanches
16.02.2018, 20:11
Я так понимаю, вам нужен не Write, а Read.
И переменные DWORD/FLOAT следует выравнивать по четным регистрам. См. пример.

Для теста задавал PSW404=2.5 и c=2.
Результат корректный.

Спасибо, с этим разобрался ,но видать неправильно объяснил суть, так как сам сначала не понял,
проблема с регистрами PSW подкрепленными к рецептам.

С уважением, Александр.

vniko
19.02.2018, 17:07
Vansanches, не совсем понимаю, зачем Вам заморачиваться с float?
Если, например, после запятой 2 знака и переменные умноженные на 100 влезают в формат Word, то и работайте с целыми Word = float * 100.
В элементах экрана использовать Масштабирование и Дробную часть, по обстоятельствам.

Vansanches
20.02.2018, 06:38
Vansanches, не совсем понимаю, зачем Вам заморачиваться с float?
Если, например, после запятой 2 знака и переменные умноженные на 100 влезают в формат Word, то и работайте с целыми Word = float * 100.
В элементах экрана использовать Масштабирование и Дробную часть, по обстоятельствам.

Доброе утро, спасибо, я уже учел этот момент , все настроилось,

С уважением, Александр.

Евгений Кислов
20.02.2018, 12:44
Выложены новые видеоуроки по СП3хх. Данный блок видео посвящен настройке обмена с другими устройствами:
http://www.owen.ru/forum/showthread.php?t=28054

sergei24
28.02.2018, 12:34
Всем добрый день!
Вопрос следующий:
Как сделать это окно активным что бы можно было менять порт?
35871

Ильнур Гибадуллин
28.02.2018, 12:47
Всем добрый день!
Вопрос следующий:
Как сделать это окно активным что бы можно было менять порт?
35871

Здравствуйте! В текущей версии конфигуратора изменить порт, к сожалению, нельзя. Скоро компания ОВЕН выпустит обновленную версию Конфигуратора на панели СП3хх, изменение этого параметра станет доступно.

sergei24
28.02.2018, 12:59
А по срокам примерно можно озвучить?
А под заказ уже можно заказать 15 дюймовую панель?
Заранее спасибо!

Евгений Кислов
28.02.2018, 13:23
А по срокам примерно можно озвучить?
А под заказ уже можно заказать 15 дюймовую панель?
Заранее спасибо!

Ориентируемся на март-апрель. Заказать пока нельзя.

Gribanin
04.03.2018, 23:16
Доброго времени суток. Уважаемые коллеги такой вопрос. Я вызываю ф.область с помощью бита управления цифрового ввода. Так вот собственно вопрос почему когда я меняю значение ц.ввода с помощью клавиатуры все ок. , бит управления срабатывает ф.область делает что должна, но если менять значение с помощью операции с данными +/-, ф.область не вызывается?

Евгений Кислов
05.03.2018, 07:06
Доброго времени суток. Уважаемые коллеги такой вопрос. Я вызываю ф.область с помощью бита управления цифрового ввода. Так вот собственно вопрос почему когда я меняю значение ц.ввода с помощью клавиатуры все ок. , бит управления срабатывает ф.область делает что должна, но если менять значение с помощью операции с данными +/-, ф.область не вызывается?

Добрый день. Вы, вероятно, имеете в виду бит уведомления? У элемента Операции с данными его нет. Но вы можете использовать элемент Функциональная кнопка - в нем можно и выполнить арифметические операции, и взвести нужный бит.

Gribanin
05.03.2018, 08:53
Да, действительно не правильно написал. Я поставил галочку "бит управления " на цифровом вводе, за цифровым вводом закреплен регистр PFW40. А с помощью операции с данными я увеличиваю, или уменшаю значение регистра PFW40.

Евгений Кислов
05.03.2018, 08:58
Да, действительно не правильно написал. Я поставил галочку "бит управления " на цифровом вводе, за цифровым вводом закреплен регистр PFW40. А с помощью операции с данными я увеличиваю, или уменшаю значение регистра PFW40.

Да, бит уведомления срабатывает только при вводе данных через сам элемент. Изменение значения регистра другими средствами никак на него не повлияет. Поэтому см. рекомендацию из моего предыдущего ответа.

Gribanin
05.03.2018, 10:01
Да, действительно не правильно написал. Я поставил галочку "бит управления " на цифровом вводе, за цифровым вводом закреплен регистр PFW40. А с помощью операции с данными я увеличиваю, или уменшаю значение регистра PFW40.Но проблема остается той же. Если меняю значение цифрового ввода (нажал на цифровой ввод, появилась клавиатура, ввел значение, нажал ентер) ,тогда все ок. Но если нажать на кнопку операции с данными, значение цифрового ввода (и соответственно регистра PFW40 меняется, но ф. область не вызывается.

Gribanin
05.03.2018, 10:03
Извините не увидел предыдущий пост. Спасибо за ответ попробую так как вы сказали.

Roman_777
07.03.2018, 07:54
Добрый всем день!
Подскажите, пожалуйста, как можно организовать 3-позиционный переключатель (а мб и больше) ? (управление целочисленным типом данным 0-1-2).

Евгений Кислов
07.03.2018, 07:56
Добрый всем день!
Подскажите, пожалуйста, как можно организовать 3-позиционный переключатель (а мб и больше) ? (управление целочисленным типом данным 0-1-2).

Добрый день.
С помощью элемента Динамическое изображение.

Roman_777
07.03.2018, 08:03
С помощью элемента Динамическое изображение.
Так мы сможем отображать, но как управлять с его помощью, я что-то пока не понимаю...

Евгений Кислов
07.03.2018, 08:08
Так мы сможем отображать, но как управлять с его помощью, я что-то пока не понимаю...

С помощью невидимых функциональных кнопок, например.

Roman_777
07.03.2018, 08:18
Благодарю)

Roman_777
07.03.2018, 09:26
Объекту статический текст пытаюсь установить цвет фона, но он ничего не меняет. Так же не меняет цвет рамки ничего...

Евгений Кислов
07.03.2018, 09:27
Объекту статический текст пытаюсь установить цвет фона, но он ничего не меняет. Так же не меняет цвет рамки ничего...

Галочку Вид поставьте в настройках.

Roman_777
07.03.2018, 09:36
Работает, спс)

Roman_777
07.03.2018, 14:44
Кабель для подключения ПЛК к HMI в комплекте с HMI или ПЛК не идёт?
И в руководстве СП310 есть картинка "Назначение контактов соединителя порта PLC (DB9M)". Вот эти схемы нарисованы для стороны папы или мамы DB9M?

Евгений Кислов
07.03.2018, 15:33
Кабель для подключения ПЛК к HMI в комплекте с HMI или ПЛК не идёт?
И в руководстве СП310 есть картинка "Назначение контактов соединителя порта PLC (DB9M)". Вот эти схемы нарисованы для стороны папы или мамы DB9M?

Кабель в комплект не входит. Схемы нарисованы для "мамы" - на них есть обозначение DB9F, "female".

umar19
07.03.2018, 22:39
В общем то я уже работал с этими панелями.... Не устраивает что в переменных типа Float нужно байты переставлять для правильного отображения.
Есть у меня пара проектов, могу поделиться.

Евгений Кислов
08.03.2018, 07:22
Действительно, порядок байтов в Float не специфицирован в протоколе Modbus - поэтому зачастую приходится заниматься их перестановкой. На наших ПЛК это решается одной настройкой.
Проектами, конечно, делитесь - думаю, начинающим пользователям будет интересно ознакомиться.

Roman_777
08.03.2018, 19:29
Кабель в комплект не входит. Схемы нарисованы для "мамы" - на них есть обозначение DB9F, "female".

Я догадывался... но хотел уточнить. Благодарю!

Евгений76
12.03.2018, 16:01
Здравствуйте! Имеем панель 310Р и блок ввода-вывода МК110 4ДН4Р, не могу никак понять алгоритм настройки(((,
пока только разбираюсь с ними, в дальнейшем необходимо настройка с частотниками АВВ, блоками ввода-вывода и тд. Пока нужно простейшее, на панели переключатель , который должен включать 1 выход МК. На обоих устройствах выставил одинаковые параметры связи - 9600 , 8, 1, отсутствует. На МК выход - связь по RS485 .На панели модбас мастер, какие цифры нужно ввести в параметрах переключателя на панели, можно пример? вводил разные, ничего не получается,

Евгений76
12.03.2018, 16:02
адрес устройства везде 16

Евгений76
12.03.2018, 16:04
смотрел видео уроки....если возможно можно было бы добавить видеоурок по настройке панели оператора с блоками ввода вывода! Думаю многим бы было интересно!

Евгений Кислов
12.03.2018, 17:17
Добрый день.

У, нас, собственно, есть пример с этим модулем:
http://www.owen.ru/uploads/sp307_macrocommunication.zip

Вам достаточно поменять сетевые настройки и адрес с 70 на 16 (адрес меняется в т.ч. и в макросе).
А также удалить опрос модуля МВ110-8А.

Описание для макроса из примера есть здесь:
http://www.owen.ru/uploads/aip_47_sait_kislov_36-37.pdf

Фёдор74
13.03.2018, 06:05
Здравствуйте. Не получается скачать проект с панели СП310Р. Закачиваю проект в панель с возможностью выгрузки, пытаюсь его скачать, редактор выдаёт ошибку и закрывается. В чем может быть причина?

Евгений Кислов
13.03.2018, 06:56
Здравствуйте. Не получается скачать проект с панели СП310Р. Закачиваю проект в панель с возможностью выгрузки, пытаюсь его скачать, редактор выдаёт ошибку и закрывается. В чем может быть причина?

Добрый день.
Скорее всего, в пути установки конфигуратора есть символы кириллицы - и причина именно в этом.

Фёдор74
13.03.2018, 07:29
При установки конфигуратора он сам создаёт папку на на русском "C:\Program Files (x86)\Owen\Конфигуратор СП300\SP300.exe" . Её можно переименовать?

Евгений Кислов
13.03.2018, 07:38
При установки конфигуратора он сам создаёт папку на на русском "C:\Program Files (x86)\Owen\Конфигуратор СП300\SP300.exe" . Её можно переименовать?

Можно переименовать.
Да, мы знаем об этом поведении - оно будет исправлено.

Евгений76
14.03.2018, 09:15
Можно переименовать.
Да, мы знаем об этом поведении - оно будет исправлено.

Здравствуйте! Поэтому не дает выгрузить проект из панели? (загружена с исходным кодом)
Еще вопрос. по выше данной рекомендации настроил управление с панели 310 с блоком МК110.
управляю выходами с переключателя в режиме инверсия. Когда выхода включены имитирую режим аварии(пропадания питания, сначала выключаю питание панели , потом включаю - выхода отключаются.
Потом выключаю питание МК110 и включаю снова - выхода сначала отключаются потом включаются(нужно чтобы надежно отключились). Возможно ли сделать отключение выходов при пропадании питания и подаче снова?

Евгений Кислов
14.03.2018, 09:37
Здравствуйте! Поэтому не дает выгрузить проект из панели? (загружена с исходным кодом)

Да, по этой причине.


Возможно ли сделать отключение выходов при пропадании питания и подаче снова?

Управление выходами будет осуществляться исключительно с дисплея панели или по каким-то условиям и алгоритмам?

Евгений76
14.03.2018, 10:27
С панели, включение -выключение пускателя двигателя, чтобы сам не запустился при пропадании подаче питания,

Евгений Кислов
14.03.2018, 11:20
С панели, включение -выключение пускателя двигателя, чтобы сам не запустился при пропадании подаче питания,

Тогда необходимо сделать следующее:

1. Подключить модуль к PLC-порту
2. Присвоить биту PFW36.2 значение ВКЛ (например, через функциональную область, тип запуска - После включение панели). Бит меняет функцию записи Modbus для элементов визуализации - с 0x06 на 0x10 (модулю нужна как раз 0x10).
3. Добавить на экран элемент Переключатель с индикацией, указать в нем PLC-порт, адрес модуля и регистр 4x50.0 (для первого выхода).
4. Добавить на экран элемент Переключатель с индикацией, указать в нем PLC-порт, адрес модуля и регистр 4x50.1 (для второго выхода).
... и т.д.

Соответственно, надо будет убрать из проекта всю часть, связанную с макросом.

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

Roman_777
14.03.2018, 19:55
Подскажите, пожалуйста, почему при подключении HMI ASCII master-ом я не могу значения в элементах (кнопках/переключателях) вплоть до каждого бита регистра. Нет возможности выбрать "4x", только "0x" и "1x" ?

Евгений Кислов
14.03.2018, 20:02
Подскажите, пожалуйста, почему при подключении HMI ASCII master-ом я не могу значения в элементах (кнопках/переключателях) вплоть до каждого бита регистра. Нет возможности выбрать "4x", только "0x" и "1x" ?

Потому что такой возможности не закладывалось. Вы можете считать регистр в память панели PSW/PFW через функциональную область и привязать к лампам отдельные биты PSW/PFW регистра. С записью - по аналогии.

Roman_777
14.03.2018, 20:05
Потому что такой возможности не закладывалось. Вы можете считать регистр в память панели PSW/PFW через функциональную область и привязать к лампам отдельные биты PSW/PFW регистра. С записью - по аналогии.
Интересно... Благодарю!

Евгений Кислов
15.03.2018, 08:23
Выложены новые видеоуроки по СП3хх.
Данный блок видео посвящен работе с продвинутыми элементами - трендами, таблицами, архивами:
http://www.owen.ru/forum/showthread.php?t=28054

Фёдор74
21.03.2018, 13:10
Пытаюсь включить Эмуляцию Online на своем ПК Конфигуратор СП300 выбаёт ошибку и закрывается. Подключение через ТCP .

Евгений Кислов
21.03.2018, 13:15
Пытаюсь включить Эмуляцию Online на своем ПК Конфигуратор СП300 выбаёт ошибку и закрывается. Подключение через ТCP .

В пути установки конфигуратора есть символы кириллицы?

Фёдор74
21.03.2018, 13:17
Нет "C:\Program Files (x86)\Owen\Config_SP310_main\SP300.exe"

Евгений Кислов
21.03.2018, 13:18
Нет "C:\Program Files (x86)\Owen\Config_SP310_main\SP300.exe"

Отправьте проект на support@owen.ru, пожалуйста.

Евгений Кислов
29.03.2018, 15:23
Открыты продажи панели СП315-Р.
http://www.owen.ru/forum/showthread.php?t=28535

Обновлено ПО, документация и примеры.
http://www.owen.ru/catalog/sensornie_paneli_operatora_oven_sp3xx/95184166

Фёдор74
29.03.2018, 18:41
Добрый день! У нас возникла следующая проблема:
К панель оператора СП310 по протоколу TCP через конвертеры Modbus RTU/ Internet подключены 8 тепловых установок. Каждая установка состоит из реле ПР110 и регулятора RW55 Siemens которые соединенны между собой по RS 485 Modbus RTU. эти установки поредеют на панель оператора 3 регистра.
ПР110 передаёт одно слово состояния установки (вкл, выкл) RW55 передаёт в формате REAL температуру.
Время таймаута каждого подключение установлено 600мс количество запросов 40.
Проблема в следующим:
При отключение одного из устройств (отключаем питание одного из конверторов) панель жутко виснет на экране появляется надпись "Соединение", не реагирует на кнопки перехода на другой экран, пропадает связь с другими подключенными устройствами.
Как с этим бороться?

Евгений Кислов
29.03.2018, 20:03
Добрый день! У нас возникла следующая проблема:
К панель оператора СП310 по протоколу TCP через конвертеры Modbus RTU/ Internet подключены 8 тепловых установок. Каждая установка состоит из реле ПР110 и регулятора RW55 Siemens которые соединенны между собой по RS 485 Modbus RTU. эти установки поредеют на панель оператора 3 регистра.
ПР110 передаёт одно слово состояния установки (вкл, выкл) RW55 передаёт в формате REAL температуру.
Время таймаута каждого подключение установлено 600мс количество запросов 40.
Проблема в следующим:
При отключение одного из устройств (отключаем питание одного из конверторов) панель жутко виснет на экране появляется надпись "Соединение", не реагирует на кнопки перехода на другой экран, пропадает связь с другими подключенными устройствами.
Как с этим бороться?

Это исправлено в новой версии конфигуратора (D3k-5). См. пост выше. Потребуется создать новый проект в новом конфигураторе и копипастом перенести туда содержимое текущего.

См. видео: https://youtu.be/_C0mZyw0MHs

Альтернативный вариант, который решит проблему концептуально - использовать панель в режиме slave.

Евгений Кислов
04.04.2018, 07:59
Пока Учебный центр ОВЕН (http://edu.owen.ru/) доводит до ума последние видеоуроки из курса "Панели оператора СП3хх. Конфигурирование и визуализация", мы сделали на коленке видео, в котором рассматривается достаточно часто задаваемый вопрос: как организовать архивацию таблицы тревог на USB-накопитель?

В данном видео мы рассмотрим, как организовать свою таблицу тревог с помощью элемента Таблица отображения данных, как передать из ПЛК строку с текстом сообщения на панель и как управлять таблицей с помощью макросов, исполняемых в панели:
https://www.youtube.com/watch?v=BU1ugXRrzg4&t=1s

Проекты из примера: скачать (https://ftp.owen.ru/SP300/99_ForumFiles/Example_AlarmTableArchive.zip)

rxmn
05.04.2018, 22:08
Добрый день, у меня такая проблема, с помощью СП310 я считываю температуру с ТРМ201 и мне нужно организовать подсчет времени, сколько времени нужно для того чтобы температура выросла на определенное значение. Со всем функционалом разобрался, но вот никак не получается организовать сравнение двух величин в формате float с помощью макроса такого содержания:
if (PSW[425]>PSW[423])
{
SetPSB(450);
}
else
{
ResetPSB(450);
}

Работает данный макрос не так как мне надо, бит 450 то включается то выключается случайным образом. Как правильно мне организовать такое сравнение?

Евгений Кислов
06.04.2018, 06:55
Добрый день.

float занимает два регистра, и в макросе надо явным образом указывать, что вы хотите использовать именно этот тип данных.
И еще, для использования float'ов в макросе - они должны быть расположены в памяти панели так, чтобы их первый регистр был ЧЕТНЫМ.

Т.е. вам необходимо считать один из float'ов, например, в регистры PSW422-423, а второй - в PSW424-425.
Тогда макрос будет выглядеть следующим образом:

36468

На следующей неделе планируем выложить видеопример, где как раз рассматривается эта задача.

Фёдор74
07.04.2018, 06:11
Цитата Сообщение от Фёдор74 Посмотреть сообщение
Добрый день! У нас возникла следующая проблема:
К панель оператора СП310 по протоколу TCP через конвертеры Modbus RTU/ Internet подключены 8 тепловых установок. Каждая установка состоит из реле ПР110 и регулятора RW55 Siemens которые соединенны между собой по RS 485 Modbus RTU. эти установки поредеют на панель оператора 3 регистра.
ПР110 передаёт одно слово состояния установки (вкл, выкл) RW55 передаёт в формате REAL температуру.
Время таймаута каждого подключение установлено 600мс количество запросов 40.
Проблема в следующим:
При отключение одного из устройств (отключаем питание одного из конверторов) панель жутко виснет на экране появляется надпись "Соединение", не реагирует на кнопки перехода на другой экран, пропадает связь с другими подключенными устройствами.
Как с этим бороться?
Это исправлено в новой версии конфигуратора (D3k-5). См. пост выше. Потребуется создать новый проект в новом конфигураторе и копипастом перенести туда содержимое текущего.

См. видео: https://youtu.be/_C0mZyw0MHs

Проблема с зависанием панели СП310 при отключении одного из устройств ушла при использовании нового конфигуратора(D3k-5).
Но возникла другая проблема, панель периодический примерно раз в сутки иногда чаще зависает (либо застывает экран, как скриншот не реагирует на нажатие кнопок, либо вообще вываливается в белый экран) в это время пинг в панель отсутствует. Помогает только отключение питания панели. Эта проблема была и на предыдущим конфигураторе.

Евгений Кислов
07.04.2018, 08:23
Проект отправьте, пожалуйста, на support@owen.ru

rxmn
07.04.2018, 12:49
Добрый день.

float занимает два регистра, и в макросе надо явным образом указывать, что вы хотите использовать именно этот тип данных.
И еще, для использования float'ов в макросе - они должны быть расположены в памяти панели так, чтобы их первый регистр был ЧЕТНЫМ.

Т.е. вам необходимо считать один из float'ов, например, в регистры PSW422-423, а второй - в PSW424-425.
Тогда макрос будет выглядеть следующим образом:

36468

На следующей неделе планируем выложить видеопример, где как раз рассматривается эта задача.
Спасибо, Евгений, все работает!

Евгений Кислов
09.04.2018, 07:19
В определенных случаях (достаточно редко, надо сказать) существует потребность программно перезагрузить панель.
Этот процесс рассмотрен в данном видео (https://youtu.be/FBn2uevsA3M).

Ссылка на пример из видео (https://ftp.owen.ru/SP300/99_ForumFiles/Example_SoftReboot.txp).

Евгений Кислов
10.04.2018, 15:44
Выложены новые видеоуроки по СП3хх.
В них рассмотрена работа с системным временем, организация парольного доступа и использование макросов на С.
В последнем видеоуроке содержатся полезные советы, которые облегчат вам работу над проектами и продемонстрируют использование некоторых системных регистров.
http://www.owen.ru/forum/showthread.php?t=28054

Gribanin
12.04.2018, 22:18
Здравствуйте,планируется ли реализовать данный функционал?36586

Евгений Кислов
13.04.2018, 09:32
Здравствуйте,планируется ли реализовать данный функционал?36586

Добрый день. Данный функционал может быть реализован при помощи элемента Архивирования на USB - достаточно указать в нем те же регистры, что и в тренде.

Евгений Кислов
16.04.2018, 07:46
Отмечу еще одно нововведение последней версии конфигуратора СП300 (V2.D3k-5): теперь для окна тревог можно указать координаты открытия.

36647

Evlord
17.04.2018, 21:21
при копировании нескольких регистров с modbus-устройств в регистры и из регистров в устройства панель "тормозит" слегка, а порой зависает после длительной работы с регистрами энергонезависимой памяти. особенно подвисания панели бывают серьёзными при загрузке одного и того же проекта в новую панель без конфигурации. есть ли возможность как-то "облегчить" работу панели?

Евгений Кислов
18.04.2018, 06:54
при копировании нескольких регистров с modbus-устройств в регистры и из регистров в устройства панель "тормозит" слегка, а порой зависает после длительной работы с регистрами энергонезависимой памяти. особенно подвисания панели бывают серьёзными при загрузке одного и того же проекта в новую панель без конфигурации. есть ли возможность как-то "облегчить" работу панели?

Не видя проектов сложно что-то сказать.
Торможение при копировании регистров может происходить, если, например, неверно указаны их адреса.

nensist
02.05.2018, 22:10
Всем привет! Вопрос такого плана! Надо сделать журнал аварий, чтоб было время появления аварии и время квитирования. Понятно что для этой цели есть историческая таблица с привязкой времени к событиям. Но проблема в том что функциональная кнопка квитирования работает только с таблицей, а также не подходит тот вариант что даже при существующей аварии квитирование все равно сбрасывает в таблице данное сообщение, а именно устанавливает время квитирования. Как реализовать чтоб запись квитирования в таблицу происходило только в том случае когда реально авария устранена и как привязать кнопку квитирования для работы с регистрами для физического сброса аварийного сигнала в ПЛК

Евгений Кислов
03.05.2018, 07:02
Добрый день.


Но проблема в том что функциональная кнопка квитирования работает только с таблицей

Извините, не понял - в чем именно заключается проблема?

ПростоМастер
03.05.2018, 07:31
Добрый день.
Подскажите как реализовать обмен СП310 по протоколу Modbus ASCII. Есть готовые библиотеки?
Необходимо опрашивать датчик NL-1S011 , он использует команды ASCII.

Евгений Кислов
03.05.2018, 07:36
Добрый день.
Подскажите как реализовать обмен СП310 по протоколу Modbus ASCII. Есть готовые библиотеки?
Необходимо опрашивать датчик NL-1S011 , он использует команды ASCII.

Добрый день. Достаточно просто выбрать протокол Modbus ASCII в настройках порта:

36986

Но вы уверены, что NL-1S011 поддерживает Modbus ASCII?

ПростоМастер
03.05.2018, 08:09
В инструкции на датчик указано что управляется ASCII кодами через интерфейс RS-485.
Стандартные настройки порта 9600 1старт 1стоп четности нет
Через терминал отправляю команду ^T0001cr получаю ответ !00010237cr где 0001 номер в сети, 0237 температура 23,7 градуса.
Как это реализуется в СП310?
Я так понимаю нужно реализовывать через библиотеки нестандартного протокола?

Евгений Кислов
03.05.2018, 08:17
В инструкции на датчик указано что управляется ASCII кодами через интерфейс RS-485.
Стандартные настройки порта 9600 1старт 1стоп четности нет
Через терминал отправляю команду ^T0001cr получаю ответ !00010237cr где 0001 номер в сети, 0237 температура 23,7 градуса.
Как это реализуется в СП310?
Я так понимаю нужно реализовывать через библиотеки нестандартного протокола?

Судя по описанию, датчик работает по протоколу DCON.

Это реализуется через макросы - в них можно работать с портом напрямую. В настройках порта надо будет выставить Modbus ASCII.
Вот несколько примеров:

1. Обмен через макросы по Modbus RTU (из него можно понять принцип работы с портом через макросы):
http://www.owen.ru/uploads/aip_47_sait_kislov_36-37.pdf
http://www.owen.ru/uploads/sp307_macrocommunication.zip

2. Обмен с весовым преобразователем Тензо-М по нестандартному протоколу (с ASCII-командами):
https://ftp.owen.ru/SP300/99_ForumFiles/Example_Tenzo-M.zip

Если есть возможность - свяжитесь со мной по Skype.
Мне было бы интересно помочь вам решить эту задачу и сделать пример обмена с ваши датчиком.

ПростоМастер
03.05.2018, 08:39
Спасибо за подсказки.
Верно, открыл первый попавшийся РЭ на приборы ОВЕН , протокол похож на DCON.
Пример №1 уже использовал для реализации связки СП310+МУ110-32Р.

Нужен скайп контакт.:)

Евгений Кислов
03.05.2018, 08:43
Нужен скайп контакт.:)

Евгений Кислов (owen)

Евгений Кислов
03.05.2018, 15:16
Датчик NL-1S011 (http://www.rlda.ru/NL-1S011.pdf) успешно опросили c СП3хх по DCON-образному протоколу.
Пример выложил сюда (создан в версии конфигуратора V2.D3k-5):
http://www.owen.ru/forum/showthread.php?t=28539&p=274196&viewfull=1#post274196

SA104
09.05.2018, 09:19
Доброго времени.
Подскажите, можно ли переключать цвет функциональных кнопок по событию (изменение состояния бита) ?

Евгений Кислов
09.05.2018, 09:22
Доброго времени.
Подскажите, можно ли переключать цвет функциональных кнопок по событию (изменение состояния бита) ?

Добрый день. Можно сделать так: наложить на индикатор скрытую функциональную кнопку (вкладка Кнопка - Скрыть кнопку).
Соответственно, ее внешний вид будет определяться индикатором, к которому вы и привяжете бит.

SA104
09.05.2018, 10:04
Спасибо .

Ale Xander
13.05.2018, 10:46
Добрый день. Вопрос по панели сп307. В часто задаваемых вопросах сказано: "В меню Настройки проекта - Общие настройте интервал неактивности пользователя, после которого происходит переход на экран заставки, и укажите номер этого экрана. После перехода на экран заставки будут закрыты все уровни доступа". По факту указанный экран заставки является только визуально заставкой, при активации панели экран заставки уходит, и активным становится последний открытый экран, при этом уровень доступа не закрывается. Можно ли реализовать закрытие уровня доступа после периода неактивности?

Евгений Кислов
13.05.2018, 11:40
Добрый день. Функционал автоматического закрытия доступа работает именно так, как и описано.
Вы не могли бы выложить ваш проект и пошаговое описание ваших действий (куда нажимаете и т.д.)?

Ale Xander
13.05.2018, 18:22
да, выкладывать особо нечего. есть два экрана 1 и 2. с кнопками перехода из одного в другой. экран 2 с паролем доступа. в настройках проекта стартовый экран 1, после 5 мин неактивности показать экран 1.
если со 2 экрана самостоятельно не вернуться на экран 1, то после 5 мин неактивности появляется экран 1, но он не функциональный, при его касании он исчезает, и появляется снова экран 2 без запроса пароля
прикрепил файл, на всякий случай

Евгений Кислов
13.05.2018, 18:44
да, выкладывать особо нечего. есть два экрана 1 и 2. с кнопками перехода из одного в другой. экран 2 с паролем доступа. в настройках проекта стартовый экран 1, после 5 мин неактивности показать экран 1.
если со 2 экрана самостоятельно не вернуться на экран 1, то после 5 мин неактивности появляется экран 1, но он не функциональный, при его касании он исчезает, и появляется снова экран 2 без запроса пароля
прикрепил файл, на всякий случай

Это предсказанное поведение. Да, экран заставки - не функциональный, это просто скринсейвер, и при нажатии на него осуществляется переход на предыдущий открытый экран.

Вот ваш пример с тем поведением, которое хотите вы:

Ale Xander
14.05.2018, 18:12
полуается, в моем случае без дополнительного экрана не обойтись?

Евгений Кислов
14.05.2018, 19:36
полуается, в моем случае без дополнительного экрана не обойтись?

Можно обойтись, используя макросы. При переходе на экран заставки системные биты уровней доступа (PSB60...PSB69) сбрасываются в FALSE - вы можете контролировать это в макросе и по условию переключать экраны.

Ale Xander
15.05.2018, 06:39
спасибо, буду разбираться

SokolovS
15.05.2018, 08:30
Можно обойтись, используя макросы. При переходе на экран заставки системные биты уровней доступа (PSB60...PSB69) сбрасываются в FALSE - вы можете контролировать это в макросе и по условию переключать экраны.
При выключении подсветки происходит то же самое?
Функциональной областью (или парой) с аналогичной задачей пользоваться можно?

Евгений Кислов
15.05.2018, 08:44
При выключении подсветки происходит то же самое?

Да.


Функциональной областью (или парой) с аналогичной задачей пользоваться можно?

Можно подробнее, о какой задаче речь?

SokolovS
15.05.2018, 08:52
Можно подробнее, о какой задаче речь?

Контролировать системные биты уровней доступа (PSB60...PSB69) и переходить на нужный экран

Евгений Кислов
15.05.2018, 09:26
Контролировать системные биты уровней доступа (PSB60...PSB69) и переходить на нужный экран

В принципе, можно.

Dimooon
15.05.2018, 10:01
Почему так тормозит СП310?
https://youtu.be/4gm05nq3O-E

Евгений Кислов
15.05.2018, 10:07
Почему так тормозит СП310?
https://youtu.be/4gm05nq3O-E

Судя по всему - панель является мастером, и обмен настроен с ошибками (неверные адреса устройств, регистров и т.д.).
Вообще - к панели физически slave-устройства подключены?

Dimooon
15.05.2018, 10:20
Пока еще не подключал к ПЛК , только Сп успел включить- сразу к Вам побежал. Проект начал делать до прихода панели,и в нем есть ошибки. Я так и подумал, что надо все проверить - и тогда тормозить не будет.

Фёдор74
15.05.2018, 20:23
Расскажите пожалуйста поподробней на что влияют параметры в коммуникационных настроек по протоколу Modbus ТСР панели СП310Р: Время ожидания, Попыток, Таймаут. Как их правильно настраивать для нескольких подключенных к панели устройств.

Евгений Кислов
15.05.2018, 20:32
Расскажите пожалуйста поподробней на что влияют параметры в коммуникационных настроек по протоколу Modbus ТСР

Эта информация есть в РП.


Как их правильно настраивать для нескольких подключенных к панели устройств.

Оставить в значениях по умолчанию.

Фёдор74
15.05.2018, 20:51
Эта информация есть в РП.



Оставить в значениях по умолчанию.
Но тогда зачем они там если их трогать нельзя?)))))):confused:

Евгений Кислов
15.05.2018, 21:14
А зачем вы хотите их трогать? У вас наблюдаются какие-то проблемы с обменом?
В этом случае нужна более подробная информация, чтобы можно было дать какие-то рекомендации.

Dimooon
16.05.2018, 10:51
Подскажите пожалуйста, если в настройке цифрового дисплея я указал тип данных Dword, формат данных Float, из ПЛК из регистров Float передается значение REAL - и на панели совсем не то значение, что я вижу в конфигурации ПЛК в этом регистре. Тут и подкрутить особо негде... Что делать?

Евгений Кислов
16.05.2018, 11:09
Подскажите пожалуйста, если в настройке цифрового дисплея я указал тип данных Dword, формат данных Float, из ПЛК из регистров Float передается значение REAL - и на панели совсем не то значение, что я вижу в конфигурации ПЛК в этом регистре. Тут и подкрутить особо негде... Что делать?

Если мастером является панель - то в настройках порта (там же где скорость, четность и т.д.) поставить галочку Изменить порядок регистров (раньше называлась Поменять WORD в FLOAT).
Если мастер ПЛК - то надо переставить регистры местами - либо на стороне ПЛК, либо на стороне панели.

См. пример:
http://www.owen.ru/upl_files/PO/SP300CODESYS2.3_v1.1.zip

Dimooon
16.05.2018, 11:57
Спасибо, помогло. Пример хотел открыть - таргет файл для ПЛК110 не могу найти. У Вас лишнего нет?

Евгений Кислов
16.05.2018, 12:21
Спасибо, помогло. Пример хотел открыть - таргет файл для ПЛК110 не могу найти. У Вас лишнего нет?

В примерах использовался таргет 3.08:
http://www.owen.ru/uploads/3.08.rar

Dimooon
16.05.2018, 16:43
В создании рецептов - жму загрузить рецепт - например, из PFV300 пришло в PSV 300. А моя уставка находится в PLC регистр 7. Как ее туда закинуть

Евгений Кислов
17.05.2018, 06:51
В создании рецептов - жму загрузить рецепт - например, из PFV300 пришло в PSV 300. А моя уставка находится в PLC регистр 7. Как ее туда закинуть

У вас только одна уставка? Вы уверены, что вам нужен механизм рецептов для работы с ней?

Dimooon
17.05.2018, 07:47
Уставок в рецепте будет шесть. Еще я хотел бы сохранять в рецепте 5 битовых состояний вкл или откл. А есть ли возможность сохранять и выводить название рецепта при выборе номера рецепта? Сколько таких рецептов панель способна сохранять?

Евгений Кислов
17.05.2018, 07:54
Уставок в рецепте будет шесть. Еще я хотел бы сохранять в рецепте 5 битовых состояний вкл или откл. А сколько таких рецептов панель способна запомнить?

Память PFW содержит ~4 млн. регистров - так хватит на множество рецептов.
По вашему вопросу - вы можете в примере копировать регистры PSW в ПЛК, чтобы записать в него текущий выбранный оператором рецепт.
http://www.owen.ru/uploads/example_recipes.zip


А есть ли возможность сохранять и выводить название рецепта при выборе номера рецепта?

См. пример выше.

Dimooon
17.05.2018, 08:31
По визуализации - нашел в библиотеке трубы, три изображения с течением жидкости, а вот колено имеет одно изображение -откл, колена с течением воды в библиотеке нет?

Евгений Кислов
17.05.2018, 08:32
По визуализации - нашел в библиотеке трубы, три изображения с течением жидкости, а вот колено имеет одно изображение -откл, колена с течением воды в библиотеке нет?

В библиотеке нет. Можно наложить поверх трубы элемент Канал.

Dimooon
17.05.2018, 11:54
У меня после загрузки проекта в панель, иногда сдвигаются клапаны. Перезаливаю проект - а они все равно не на своем месте. Уже удалил их совсем, тиражирую снова - безрезультатно...

Евгений Кислов
17.05.2018, 11:55
Проект, выложите, пожалуйста.

Dimooon
17.05.2018, 12:03
Проект для панели и ПЛк

Евгений Кислов
17.05.2018, 12:07
У вас положением этих элементов ПЛК управляет - координата Y считывается с него.

37292

Dimooon
17.05.2018, 12:15
Трубы я сделал в выключенном состоянии невидимыми, пустая картинка. Но после включения, они могут и остаться на панели. Как то можно это победить? И можно ли сделать, чтобы трубы во включенном состоянии не мигали, а непрерывно показывали течение жидкости?
https://youtu.be/LV8kjlPtAHU

Евгений Кислов
17.05.2018, 12:19
Если трубы могут быть выключены (невидимы) - то лучше использовать для них элемент Анимация изображения - у него есть бит видимости.
Картинки с потоком нужно будет где-то найти или нарисовать самостоятельно.

Dimooon
18.05.2018, 05:19
Забуксовал на ровном месте - открываю окно 2 (режимы) , там две кнопки с индикаторами, по срабатыванию одного индикатора (ПЛК бит 56) надо перейти на экран 7 и закрыть окно 2. А у меня -кто в лес, кто по дрова... Можно у Вас какойнибудь пример с функциональными областями попросить?

Евгений Кислов
18.05.2018, 06:39
У вас в условии функциональной области выбран бит PSB260 - а надо выбрать 0x56.

ПростоМастер
20.05.2018, 10:15
Здравствуйте.
Подскажите возможно подключить СП310-Р к облачному сервису. Для ПЛК возможность добавили, может и панель тоже можно подключить.

Евгений Кислов
20.05.2018, 10:22
Здравствуйте.
Подскажите возможно подключить СП310-Р к облачному сервису. Для ПЛК возможность добавили, может и панель тоже можно подключить.

Добрый день. К сожалению, такой возможности нет.
Подключить панель к OwenCloud можно только через сетевые шлюзы Пx210.

Dimooon
21.05.2018, 08:40
Подскажите пжс, в рецепте надо 6 битов запаковать в регистр word, чтобы потом в ПЛК распаковать и присвоить эти значения переменным bool, как это реализовать?

Евгений Кислов
21.05.2018, 09:24
Подскажите пжс, в рецепте надо 6 битов запаковать в регистр word, чтобы потом в ПЛК распаковать и присвоить эти значения переменным bool, как это реализовать?

Добрый день.
На стороне панели: добавить элементы ввода (например, переключатели с индикаций), в их настройках выбрать область памяти PSW или PFW (смотря где у вас лежат данные рецептов) и номер нужного бита.
На стороне ПЛК: получить переменную типа WORD и использовать блок Unpack из библиотеки Util для ее распаковки на отдельные биты.

Dimooon
23.05.2018, 10:39
По Вашему примеру создания рецептов создал таблицу отображения данных, но последний регистр рецепта мне не нужно отображать в таблице, но его учитывать надо, чтобы последующие рецепты не сдвигались в столбцах. Я столбец создал -ширина 0, и ваще все по нулям, тип данных word только оставил. И в эмуляции этого последнего столбца нет, и все рецепты корректно выводятся, все красиво. Но в реальной панели я вижу нолики этого последнего столбца, они за границей таблицы... Скрыть их можно как нибудь?

Евгений Кислов
23.05.2018, 11:18
По Вашему примеру создания рецептов создал таблицу отображения данных, но последний регистр рецепта мне не нужно отображать в таблице, но его учитывать надо, чтобы последующие рецепты не сдвигались в столбцах. Я столбец создал -ширина 0, и ваще все по нулям, тип данных word только оставил. И в эмуляции этого последнего столбца нет, и все рецепты корректно выводятся, все красиво. Но в реальной панели я вижу нолики этого последнего столбца, они за границей таблицы... Скрыть их можно как нибудь?

Не надо ставить ширину 0, просто сделайте вот так:

37386

Т.е. число строк на странице должно быть меньше на 1 по сравнению с общим числом строк таблицы.

Dimooon
23.05.2018, 12:29
"всего записей" - это количество возможных рецептов? У меня их 100. На экран поместилось 20 строк. Чета я недопонял ...
Если в рецепте у меня 20 регистров, а регистры занимают область начиная с PFV300, то на один экран помещается 20 рецептов - от PFW300 до PFW399. На следующем экране я должен создать новую таблицу, указав первый регистр PFW400, и тд ? По другому 100 рецептов не запихать? А кривой столбец как убрать?

Евгений Кислов
23.05.2018, 12:33
А, т.е. у вас речь идет о столбцах рецепта?
Выложите проект, пожалуйста (или отправьте мне на почту).

Dimooon
23.05.2018, 12:40
ПРоект Сп310

Евгений Кислов
23.05.2018, 13:00
Если в рецепте у меня 20 регистров, а регистры занимают область начиная с PFV300, то на один экран помещается 20 рецептов - от PFW300 до PFW399. На следующем экране я должен создать новую таблицу, указав первый регистр PFW400, и тд ? По другому 100 рецептов не запихать?

Нет, можно сделать проще - одна таблица и кнопки ее пролистывания (см. элемент Управление графиками/таблицами).

Насчет кривого столбца - посмотрю, что можно сделать. Самый простой вариант, который не требует изучения причин - самому создать правую границу таблицы и наложить ее поверх фактической границы.

petera
23.05.2018, 13:01
ПРоект Сп310

Сделайте нормальную ширину (не нулевую) для последнего столбца, пусть даже таблица будет выходить за пределы экрана.
Затем наложите на последний столбец прямоугольник с цветом контура и цветом заливки == фону экрана.

Dimooon
23.05.2018, 13:08
Сделал жирную рамку, все ок

Dimooon
25.05.2018, 05:36
Здравствуйте, мой босс накидал мне еще заданий по рецепту - добавилось еще регистров в рецепте, теперь я физически не могу отображать все регистры рецепта в таблице отображения данных - не хватает места для столбцов. То есть, есть необходимость, часть регистров скрывать, и в таблице не отображать. Помогите пжс

Евгений Кислов
25.05.2018, 06:41
Здравствуйте, мой босс накидал мне еще заданий по рецепту - добавилось еще регистров в рецепте, теперь я физически не могу отображать все регистры рецепта в таблице отображения данных - не хватает места для столбцов. То есть, есть необходимость, часть регистров скрывать, и в таблице не отображать. Помогите пжс

1. Можно по аналогии с текущим положением дел расположить "невизуализируемые" регистры в конце рецепта. Тогда они будут вылезать за пределы видимой области и, соответственно, не будут видны.

37440

2. Можно вообще отказаться от стандартной таблицы и сделать свою из цифровых дисплеев. Для прокрутки строк надо будет использовать динамическую адресацию.
Cм. простейший пример (используются макросы, поэтому в эмуляции работает не полностью):

В нем сделана таблица из трех строк, в каждый момент времени отображаются только две из них.
Пролистывание с помощью кнопок через изменение значения регистра дин. адреса.

Dimooon
25.05.2018, 07:53
У меня рецепты начинаются с PFW300. Если один рецепт занимает 50 регистров, то 100*50 = 5000. А мне говорят, что больше 4096 рег занимать нельзя... Не влезают все мои хотелки, получается? Надо количество рецептов уменьшить? А как же 4 миллиона можно использовать?

Евгений Кислов
25.05.2018, 08:00
У меня рецепты начинаются с PFW300. Если один рецепт занимает 50 регистров, то 100*50 = 5000. А мне говорят, что больше 4096 рег занимать нельзя... Не влезают все мои хотелки, получается? Надо количество рецептов уменьшить? А как же 4 миллиона можно использовать?

Действительно, в меню Создание рецептов есть ограничение на число используемых регистров. Но ограничение касается именно конкретного меню, памяти PFW у панели гораздо больше.
Фактически, это меню используется только для задания для рецептов значений по умолчанию.

Есть два варианта:

1. Как вы и сказали - уменьшить число рецептов или кол-во параметров в них.
2. Формировать начальные значения рецептов не в данном меню, а другим способом (например, в макросе). Тогда вы не столкнетесь с подобным ограничением.

Dimooon
25.05.2018, 08:13
У меня пока что с макросами проблема... Неграмотный... Поделитесь пжс ссылкой по созданию макросов
Масштаб текстовой клавиатуры на панели можно уменьшить как-то? А то она текстовый дисплей закрывает, не видно, что вбивается

Евгений Кислов
25.05.2018, 08:16
У меня пока что с макросами проблема... Неграмотный... Поделитесь пжс ссылкой по созданию макросов

См. РП и примеры по ссылке из моей подписи ("Панели оператора СП3xx - ПО и примеры").
Если есть возможность - в skype меня добавьте.

petera
25.05.2018, 11:25
А мне говорят, что больше 4096 рег занимать нельзя... Не влезают все мои хотелки, получается? Надо количество рецептов уменьшить? А как же 4 миллиона можно использовать?
Кол.рецептов уменьшать не нужно
Тут бы пододвинуть границу аторазмешения для регистров PFW в сторону увеличения, глядишь и влезли бы рецепты.

nklim
25.05.2018, 16:37
Добрый день!
Скажите, пожалуйста, в чём может быть проблема:
при попытке выгрузить проект из сконфигурированной панели (на ней как минимум есть три экрана) выскакивает сообщение "проект отсутствует".

Ильнур Гибадуллин
25.05.2018, 16:49
Добрый день!
Скажите, пожалуйста, в чём может быть проблема:
при попытке выгрузить проект из сконфигурированной панели (на ней как минимум есть три экрана) выскакивает сообщение "проект отсутствует".

Добрый день!

Для того, чтобы появилась возможность выгрузки проекта, необходимо было предварительно загрузить проект с исходным текстом. Если это не было сделано, то, к сожалению, проект выгрузить не получится.

nklim
29.05.2018, 12:40
Спасибо за ответ!
Похоже, что дело было именно в этом: уже несколько раз загружал/выгружал проект - проблем не возникало.
И кстати, лимитировано ли количество перепрошивок панели?

Евгений Кислов
29.05.2018, 12:42
Спасибо за ответ!
Похоже, что дело было именно в этом: уже несколько раз загружал/выгружал проект - проблем не возникало.
И кстати, лимитировано ли количество перепрошивок панели?

В явном виде - нет.

TYER
01.06.2018, 14:27
Добрый день! Панель СП307 реагирует на нажатие с задержкой 5 сек, в чем может быть причина?

Евгений Кислов
01.06.2018, 14:43
Добрый день! Панель СП307 реагирует на нажатие с задержкой 5 сек, в чем может быть причина?

Добрый день. Панель используется в режиме Modbus Master?

TYER
01.06.2018, 14:47
Да, с ПЛК150 по RS232

Евгений Кислов
01.06.2018, 14:49
Вероятно, некорректно настроен обмен (сетевые настройки, адреса регистров и т.д.) или проблема с кабелем (не та распиновка или поврежден).

TYER
01.06.2018, 16:46
С обменом между панелью и ПЛК все в порядке. При нажатии кнопки на панели, в ПЛК состояние бита изменяется сразу, а на панели состояние кнопки изменяется с задержкой. Задержка есть и при переходе на панели к другому окну.

Евгений Кислов
01.06.2018, 16:49
Добавьте на экран индикаторы с битами PSB50 и PSB51. Это биты статусы связи для Download- и PLC-порта. Если один из них (соответствующий вашему порту) будут мигать красным - то, очевидно, все же есть какая-то проблема с обменом.

spa
08.06.2018, 12:06
Подскажите как в макросе можно словить фронт бита?
Требуется подать звуковой сигнал при смене состояния бита. Битов много.

Евгений Кислов
08.06.2018, 13:18
Подскажите как в макросе можно словить фронт бита?
Требуется подать звуковой сигнал при смене состояния бита. Битов много.

Это обязательно делать в макросе? Можно использовать элемент Зуммер, например.

spa
08.06.2018, 13:37
C зуммером понятно, сделать для каждого бита и радоваться. Но если по мимо звука надо открыть окно с сообщением или еще что сделать. То для каждого бита делать еще элемент "Функциональная область" или создавать окно тревоги. Битов очень много.
Много элементов получается, хотел как проще и меньше муторной работы. С кодом проще и быстрей работать, чем графику и настройки туда сюда гонять.

Насколько я знаю зуммер работает только если открыт тот экран на котором он расположен. У меня биты раскиданы по разным экранам.

Евгений Кислов
08.06.2018, 14:02
C зуммером понятно, сделать для каждого бита и радоваться. Но если по мимо звука надо открыть окно с сообщением или еще что сделать. То для каждого бита делать еще элемент "Функциональная область" или создавать окно тревоги. Битов очень много.
Много элементов получается, хотел как проще и меньше муторной работы. С кодом проще и быстрей работать, чем графику и настройки туда сюда гонять.

Насколько я знаю зуммер работает только если открыт тот экран на котором он расположен. У меня биты раскиданы по разным экранам.

Вот пример.37597

Для каждого бита потребуется доп. бит, чтобы помнить о предыдущем состоянии.

Зуммер может быть глобальным - тогда будет работать независимо от открытого экрана.

spa
08.06.2018, 16:16
Вот пример.37597

Для каждого бита потребуется доп. бит, чтобы помнить о предыдущем состоянии.

Зуммер может быть глобальным - тогда будет работать независимо от открытого экрана.

Сложность еще в том что биты у меня храняться в PSW. Написал следующую функцию:

void AlarmEdge(WORD NumWord, WORD NumBit){

if( (PSW[NumWord]&(1<<NumBit)) && !(PSW[NumWord+50]&(1<<NumBit)) )
{
Beep();
PSW[NumWord+50] = 1 | (1<<NumBit);
}
else if ((PSW[NumWord]&(1<<NumBit))!=0)
{
PSW[NumWord+50] = 0 | (1<<NumBit);
}
}

Работает если только один бит сработал, если при включенном бите сработает еще один, то тогда начинает пищать постоянно.

SokolovS
08.06.2018, 16:29
Если в одном регистре, можно так сделать... как вариант, для одного регистра
Панель должна пикнуть при установке любого бита PSW[111] в 1


void AlarmEdge() {
static WORD last_val;
WORD cur_val;
cur_val = PSW[111];
if ( (cur_val & ~last_val ) > 0 ) {
Beep();
}
last_val = cur_val;
}

Код с коленки, не тестировался

spa
08.06.2018, 16:32
В этом случае будет пиликать всегда, при появлении бита и пропадания, пока все биты не потухнут. Нужно чтобы сигнал шел только при переднем фронте.

SokolovS
08.06.2018, 16:44
Уверены?
Или попробуем разобраться как должно работать?

spa
08.06.2018, 17:05
Уверены?
Или попробуем разобраться как должно работать?

В коде идет сравнение маски битов и сравнивается по условию чтобы было больше 0. Или я не правильно понял?
функция должна быть универсальной, так как регистров много

Евгений Кислов
08.06.2018, 18:09
Вот вариант с регистрами, собранный на базе опубликованных выше.

spa
08.06.2018, 18:30
Вот вариант с регистрами, собранный на базе опубликованных выше.


if( PSW[AlarmReg] > PSW[AlarmReg+50] )
Данное условие сработает не правильно, когда придет значение регистра например 3 вместо 5, посчитав что бит отключился и никакого включение не было, а на самом деле погас 2 бит и включился 1-й бит.

Евгений Кислов
08.06.2018, 18:48
Окей, тогда может проще вернуться к зуммерам и вызовам окон? Их можно тиражировать, если у вас регистры последовательно размещены - то все можно создать в пару кликов.
И добавить в проект отдельный пустой экран, на котором можно будет их редактировать при необходимости (на остальных экранах они будут наложены на элементы визуализации).

spa
08.06.2018, 18:51
Окей, тогда может проще вернуться к зуммерам и вызовам окон? Их можно тиражировать, если у вас регистры последовательно размещены - то все можно создать в пару кликов.
И добавить в проект отдельный пустой экран, на котором можно будет их редактировать при необходимости (на остальных экранах они будут наложены на элементы визуализации).
Тоже уже склоняюсь к зуммерам и окнам. Зуммеры как тиражировать я умею, а как например окна тревог тиражировать?

И еще, можно сделать чтобы зуммер был однократно, но увеличить его продолжительность?

Евгений Кислов
08.06.2018, 19:15
Какая информация должна отображаться на окнах? Если одновременно изменится несколько битов - должны открыться несколько окон поверх друг друга?

На продолжительность зуммера без доп. ухищрений повлиять нельзя.

spa
09.06.2018, 08:31
Какая информация должна отображаться на окнах? Если одновременно изменится несколько битов - должны открыться несколько окон поверх друг друга?

На продолжительность зуммера без доп. ухищрений повлиять нельзя.

На окнах должна информация с индификатором объекта, если сработает несколько битов то я формирую переменную с несколькими индикаторами сразу.

Евгений Кислов
09.06.2018, 08:37
Т.е. у вас не уникальное окно на каждый бит, а одно окно на их группу? Тогда, вероятно, проще копировать/вставить.

Вообще, по-моему, было бы проще выводить подобную информацию через Историческую таблицу, а не окна.

spa
09.06.2018, 10:08
Еще окна я не делал. Не хочется для каждого бита делать свое окно. Вообще думал одно окно, которое будет открываться по фронту любого бита. На этом окне вывод информации из регистра. А вот в этот регистр писать информацию о состоянии сработавших битов.
Таблицу историческую я сейчас сделал уже, но операторы наши не замечают записей, им нужно окно по центру экрана с кнопкой закрыть, когда увидят что произошло.
Я конечно понимаю, что хочу много от СП, когда тут уже лучше СПК брать, тогда сразу все решилось бы быстро и просто.