Вход

Просмотр полной версии : Обновленный ПЛК110?



Страницы : 1 2 3 4 [5]

Филоненко Владислав
21.01.2016, 19:13
Жду ответа от Дмитрия

_Pavel_
22.01.2016, 13:46
А без него не сможете посмотреть?

Филоненко Владислав
25.01.2016, 12:00
Дмитрий и Павел - проверяйте почту

tsda
26.01.2016, 15:45
Через любые две точки проходит прямая, и притом только одна.
Решал задачу соединения по программному Modbus TCP двух контроллеров СПК207 и ПЛК110 M02. На СПК207 установил клиента. На ПЛК110 - сервер. За основу взяты библиотеки OSCAT. Не буду описывать увлекательную путешествие в миры Овен. Устойчивое соединение удалось получить. Осталось два невыясненных вопроса.
Вопрос 1. Методом научного подбора удалось установить, что СПК207 может передать на ПЛК110 93 слова, а принять 95 слов. С учетом служебных байтов и путем нехитрого манипулирования калькулятором получаем волшебные 200 байт, при максимально возможном для приема 125 слов и передачи 123 слова. Что нашли Дмитрий и Павел у себя на почте? :confused:
Вопрос 2. Методом, еще более глубокого, научного подбора удалось установить, что минимальная задержка между запросами (задается на клиенте) должна составлять 800 мс. Циклы в конфигурации задач на обоих контроллерах 20 мс. Уменьшение задержки влечет за собой вываливание по ошибки связи. Это у меня провода такие тормозные?

_Pavel_
26.01.2016, 16:36
1. На почте решение вышеописанной проблемы длинных TCP-пакетов. Владислав, наверное, скоро опубликует новую прошивку.
2. Не знаю как MODBUS TCP но собственный протокол работает очень быстро. У меня на ПЛК минВЦ = 0. Простой пакет туда-обратно проходит за 2-4 мс.

Филоненко Владислав
26.01.2016, 20:57
Решал задачу соединения по программному Modbus TCP двух контроллеров СПК207 и ПЛК110 M02. На СПК207 установил клиента. На ПЛК110 - сервер. За основу взяты библиотеки OSCAT. Не буду описывать увлекательную путешествие в миры Овен. Устойчивое соединение удалось получить. Осталось два невыясненных вопроса.
Вопрос 1. Методом научного подбора удалось установить, что СПК207 может передать на ПЛК110 93 слова, а принять 95 слов. С учетом служебных байтов и путем нехитрого манипулирования калькулятором получаем волшебные 200 байт, при максимально возможном для приема 125 слов и передачи 123 слова. Что нашли Дмитрий и Павел у себя на почте? :confused:
Вопрос 2. Методом, еще более глубокого, научного подбора удалось установить, что минимальная задержка между запросами (задается на клиенте) должна составлять 800 мс. Циклы в конфигурации задач на обоих контроллерах 20 мс. Уменьшение задержки влечет за собой вываливание по ошибки связи. Это у меня провода такие тормозные?

СПК207 какого года выпуска?
По поводу пакетов>200 байт - сейчас идёт тестирование, закончится - выложим.
Сколько мы не делали обмена по ModBusTCP - всё летало. Попробуйте не пользоваться OSCAT, Для ПЛК110 он не нужен вообще (есть штатный в конфигурации), СПК тоже попробуйте штатный CoDeSys-вский.
P.S. на тестирование могу выдать, пишите на plc_prog@owen.ru

tsda
27.01.2016, 10:57
По поводу прошивки.

Предполагается, что перемычка при штатной эксплуатации не потребуется.
Интересно, в каком году начнется штатная эксплуатация.:o

По поводу конфигуратора.

Попробуйте не пользоваться OSCAT, Для ПЛК110 он не нужен вообще (есть штатный в конфигурации), СПК тоже попробуйте штатный CoDeSys-вский.
Огромное спасибо за совет. Пойду почитаю инструкцию. В очередной раз заценил юмор. В CODESYS 2 последний раз пользовался штатным конфигуратором года 4 назад. В 3 CDS, года 2 назад. Я думаю, (если я переживаю из-за 200 байт) многие поймут почему. Как работать в CODESYS 3 со штатной библиотекой (без штатного "конфигуратора") не знаю. В своё время пробовал, но не получилось. Если у кого то есть работающий пример, буду благодарен. Если для CODESYS 2 есть другая библиотека (не OSCAT), работающая на овеновских контроллерах, готов попробовать. На контроллерах других фирм пользуюсь библиотекой 3s ModbusTCPSrv.lib, но здесь она не прокатывает. Я думаю, разработчики Овен лучше меня смогут назвать причину.


Не знаю как MODBUS TCP но собственный протокол работает очень быстро. У меня на ПЛК минВЦ = 0. Простой пакет туда-обратно проходит за 2-4 мс.
К сожалению, я не самый лучший специалист по созданию собственных протоколов. С ПК, я в свое время, связывался по чистому TCP/IP (без Modbus), но между контроллерами, как то стрёмно. Если есть работающий пример Вашего протокола, было бы интересно посмотреть. Мне кажется, и библиотеку OSCAT можно оптимизировать. У меня есть подозрение, что тормоза связаны с неблокирующим режимом. Функция Connect не выдаёт статуса коннекта, ну а дальше за собой тянет. Может я и ошибаюсь. Сети и протоколы, не моя специализация.:(


СПК207 какого года выпуска?

P.S. на тестирование могу выдать, пишите на plc_prog@owen.ru
Спасибо. Он уже на тестировании. Версия М04. Выпуск 5 ноября 2015 года. Прошивка старая, под v3.5.5.4. Новую, с трендами, жду уже много месяцев ...

Филоненко Владислав
27.01.2016, 11:31
итак, есть чужая библиотека, которая работает странно и наш ПЛК, в котором модбус TCP на наших библиотеках работает быстро. Внимание вопрос, где копать?
Вероятно в OSCAT - например, переводятся ли там сокеты в неблокирующий режим?
Вы хотя бы на половину попробуйте, в ПЛК110 - штатный slave через конфигуратор (кстати чем он не устраивает, весь функционал поддерживается)?

И почему Вы воспринимаете вопросы и советы как вражескую пропаганду?

tsda
27.01.2016, 14:24
Владислав, извините если я Вас обидел, но мне кажется у Вас уже какая то паранойя по поводу вредителей, врагов, саботажников и провокаторов.

По поводу конфигуратора в CODESYS 2.
Прекрасно работающий продукт. У меня к нему нет никаких претензий. Просто на СПК207 у меня находится "рецептура". Этот рецепт мне надо передавать на контроллер. Таких контроллеров может быть несколько. Рецептура фактически является Batch. Объем рецепта может варьироваться в зависимости от количества шагов и установки. Минимальный размер около 2 кб. Для оптимизации процесса передачи данных естественно используются массивы и передача разбивается на несколько циклов. Обратно с контроллера также поступает достаточно большой объем информации. Для этого также используются массивы (которые к тому же имеют некоторую избыточность, для унификации под разные типы оборудования). А теперь давайте, на ПЛК110 попробуем для этой задачи использовать конфигуратор с его AT %QW ... и заодно к массиву привяжем. Дальше. Представим, что у меня нет контроллера. Я сейчас спокойно отлаживаю программу на виндовом контроллере, так как не привязан к железу. И так я работаю уже много лет. Одна и та же программа (за исключением привязки к конкретным адресам ввода-вывода, которые для отладки мне не нужны) прекрасно переносится на контроллеры разных производителей.

По поводу OSCAT.
Естественно я понимаю, что в ней могут быть ошибки. Но безошибочной библиотеки под Modbus TCP, производства Овен, я не видел. Библиотека написанная 3s на вашем контроллере не работает (о чем я уже писал выше). Библиотекой под Modbus RTU, написанной специалистами Овен, я пользуюсь.
P.S. Кстати, одна из библиотек OSCAT на сайте Овен доступна для скачивания (в разделе поддержка). Если Вы категорически против, удалите.

По поводу неблокирующего режима сокетов.
Естественно переведены. В блокирующем режиме ПЛК110 не работает вообще. Полностью умирает. Вы же сами порекомендовали мне 14 января

Сокет надо сразу ставить в неблокирующий режим. Пример тут где-то лежал.
А у Вас блокирующий, вот через 4 секунды ожидания связи ПЛК и сбрасывается по Watchdog.
Я воспользовался Вашим советом, не зная ещё, что это вражеская пропаганда.

По поводу конфигуратора в CODESYS 3.
Отличный продукт. Есть все функции и можно привязывать массивы. Я им, если честно, часто пользуюсь. Но для конкретной задачи он плохо подходит, так как в нем нет возможности динамически менять адрес для слейва. Как только в 3s это сделают, буду счастлив. А библиотеку без конфигуратора мне подключить не удалось (о чем я уже писал выше).

Филоненко Владислав
27.01.2016, 20:44
AT %Q использовать не надо.
Сам по себе slave хоть на 3 кБ сделайте. И работать он будет вплоть до 123 регистров за раз.
Ну, а в крайнем случае, ModBus TCP можно сделать и вручную. Он прост как лопата, даже проще чем ModBus RTU, нет контрольной суммы.

P.S. А не хотите попробовать сетевые переменные CODeSys-а? Под Вашу задачу они ещё лучше подходят.

_Pavel_
05.02.2016, 15:40
В кратце -
7. Расширенный функционал стека TCP/IP (поддержка DHCP, DNS, RAW Sockets)


Владислав, будьте добры, расскажите по подробнее по этому пункту. Желательно с примерами как сие использовать/настраивать. Инфы ноль, экспериментировать вслепую скучно...
И ещё: какие функции библиотеки SysLibSockets, которые в других версиях ПЛК не работали, теперь работают как следует?

Филоненко Владислав
05.02.2016, 21:11
Вот типичный файл local_addres.dat

/Настройки 0-го интерфейса Ethernet

EMAC=E9:00:23:00:77:6B
IP=0A:02:0B:78
GATE=0A:02:01:01
MASK=FF:FF:00:00

//До 4 шт. DCHP заменяет значения
DNS=10.2.1.1
DNS=10.2.1.2

DHCP=(0|1)
DHCP_NAME=Name_of pribor
//Если нет - иcпользуется название модели PLC

//Таблица маршрутизации (общая для 2-х интерфейсов.
//!Межинтерфейсный роуминг не осуществляется!

//До 10 маршрутов
//Формат IP_dest,Mask_dest,IFace_num (IFace=0 - Ethernet, IFace=1 - PPP)
//Маршруты обрабатываются по приоритету сверху вниз
//При отсутствии таблицы либо отсутствии правила, подходящего под соединения дейcтвуют следующие правила:
//Проверяется соответствие IP и MASK диапазону каждого из интерфейсов
//Если нет соответствия - выбирается интерфейс с Getway!=0
//Если такого нет - выбирается интерфейс с MASK==255.255.255.255
//Иначе - соединение не устанавливается
//ROUTE 192:168:5:0,255:255:255:0,1


//Настройки 1-го интерфейса модем PPP
//порт (NONE|COM2|DBGU|RS485-1|RS485-2)
PORT_MODEM=COM2
BODRATE_MODEM=(115200...300)

//Если пин не требуется - закоментировать строку
GSM_PIN=1234
GSM_APN=web.vodafone.de

Login=SVC
Password=54321
//Если телефон один - ввести 3 раза одно и то-же
//Если же есть резервные телефоны - дозвон по очереди
Tel1=ATDT112
Tel2=ATDT333
Tel3=ATDT555

//Время соединения(сек), =0 - бесконечно
ConectTime=180
AmountRepeat=(0..10)
//Пауза между соединениями (сек)
RepeatTime=10
//Время ожидания ответа"CONNECT" (сек) и таймаут реконнекта при отсутсвии обмена
PolingResumTime=10
//Автозапуск дозвона по PPP (YES|NO) или пользуемся OwenLibNetcontrol.lib
AUTORUN_PPP=YES


Как мы видим, появилось DHCP, DNS (значит работают функции SysSockGetHostName() и SysSockGetHostByName()),
работает PPP и работает роутинг (можно назначить, к примеру основной маршрут через Ethernet и резервный через PPP - на случай пропадания Ethernet) Или разнести доступ к разным IP по разным интерфейсам.

RawSockets - это просто голые сокеты. можно организовывать обмен по разнообразным протоколам, к-е не поддерживаются самим ПЛК. Предоставляет прямой доступ к IP уровню.

_Pavel_
09.02.2016, 13:50
Владислав, спасибо за ответ!
Ещё вопрос: после выполнения SysSockClose, а затем создания нового сокета возвращается дескриптор равный на единицу большим чем предыдущий закрытый - это нормально?

Yegor
09.02.2016, 18:08
Дескрипторы вообще не стоит рассматривать как числа в общем случае.

приборист
09.02.2016, 19:29
Добрый вечер.
Получил ПЛК110-30 М02.
И сразу вопрос:
Библиотека UNM нормально работает?
SetByte возвращает всегда 0, хотя данные постоянно посылает.
А вот получать ничего не получает. (Распайка в руководстве правильная?)

FB взял из работающего проекта (ПЛК110)
Поменялось лишь расключение, согласно руководству.

Так же не работает переключатель (Работа - Стоп - Сброс)
Может что не правильно делаю, пойду прочитаю руководство.

Scream
09.02.2016, 19:33
Вопрос к тем, кто уже приобрел.
Ставить новый 110 в производство можно?
Или еще чуть подождать?

_Pavel_
09.02.2016, 21:14
Дескрипторы вообще не стоит рассматривать как числа в общем случае.

Меня вот что беспокоит: ПЛК работает в режиме 24/7, и периодически создаёт-закрывает соединение (сеансы связи) при этом значение дескриптора всё растёт и растёт, раньше такого не было. Не могут они "закончиться" :) ?

_Pavel_
09.02.2016, 21:15
Вопрос к тем, кто уже приобрел.
Ставить новый 110 в производство можно?
Или еще чуть подождать?

У меня версия М01 уже год на объекте работает, вопросов нет.

Scream
10.02.2016, 08:02
Меня вот что беспокоит: ПЛК работает в режиме 24/7, и периодически создаёт-закрывает соединение (сеансы связи) при этом значение дескриптора всё растёт и растёт, раньше такого не было. Не могут они "закончиться" :) ?

например в windows тоже дескрипторы растут, потом в определенный момент это число сбрасывается.
что касается плк овен, если число дескриптора равное 15 или 16 то больше соединяться плк ни с кем не будет.

_Pavel_
10.02.2016, 08:17
например в windows тоже дескрипторы растут, потом в определенный момент это число сбрасывается.
что касается плк овен, если число дескриптора равное 15 или 16 то больше соединяться плк ни с кем не будет.

Вот я тоже этого опасался. Но в новом 110-м видел значения и 14000 и более. Скорее всего при переполнении число сбросится... я надеюсь ))

Филоненко Владислав
10.02.2016, 08:33
Владислав, спасибо за ответ!
Ещё вопрос: после выполнения SysSockClose, а затем создания нового сокета возвращается дескриптор равный на единицу большим чем предыдущий закрытый - это нормально?

Это нормально.

Филоненко Владислав
10.02.2016, 08:37
Добрый вечер.
Получил ПЛК110-30 М02.
И сразу вопрос:
Библиотека UNM нормально работает?
SetByte возвращает всегда 0, хотя данные постоянно посылает.
А вот получать ничего не получает. (Распайка в руководстве правильная?)

FB взял из работающего проекта (ПЛК110)
Поменялось лишь расключение, согласно руководству.

Так же не работает переключатель (Работа - Стоп - Сброс)
Может что не правильно делаю, пойду прочитаю руководство.

UNM сейчас на тестировании. Досадный косяк, тестеры просто забыли проверить. :(
А что с переключателем? Сброс, к примеру, надо ждать 6 секунд. А Пуск работает только при загрузке, потом обычный DI

Филоненко Владислав
10.02.2016, 08:38
например в windows тоже дескрипторы растут, потом в определенный момент это число сбрасывается.
что касается плк овен, если число дескриптора равное 15 или 16 то больше соединяться плк ни с кем не будет.
Это касалось предыдущей модели. Сейчас стек TCP/IP претерпел радикальные изменения.

Филоненко Владислав
10.02.2016, 08:43
Вот я тоже этого опасался. Но в новом 110-м видел значения и 14000 и более. Скорее всего при переполнении число сбросится... я надеюсь ))
Хотя оно и сбросится (это просто дескриптор), но я крайне не рекомендую без серьёзных причин открывать/закрывать сокеты. Всё таки это система 24/7, а выделение ресурсов - это всегда фрагментация кучи. И ежели Вы не только сокеты меняете как перчатки, но еще и пару мегов ОЗУ в куче будете выделять/освобождать, рано или поздно (спустя 5 лет, когда все всё забыли, а прибор где-то в под Салехардом) куча настолько фрагментируется, что очередной malloc вернёт 0.

Scream
10.02.2016, 08:47
Это касалось предыдущей модели. Сейчас стек TCP/IP претерпел радикальные изменения.

Да, я слежу за новостями, dhcp и всё такое, это хорошо.
Весной тоже буду брать.

----

Меня очень интересует работа с usb, насколько корректно работает плк с флешками, можно ли сделать полноценный архиватор, хотябы в мегабайт 10?

приборист
10.02.2016, 09:28
UNM сейчас на тестировании. Досадный косяк, тестеры просто забыли проверить. :(
А что с переключателем? Сброс, к примеру, надо ждать 6 секунд. А Пуск работает только при загрузке, потом обычный DI

Про сброс понял.
Я думал переключатель работает как программный (Пуск \ Стоп программы, аналог ПЛК110).
А как получить доступ к DI переключателя?

Филоненко Владислав
10.02.2016, 10:26
Да, я слежу за новостями, dhcp и всё такое, это хорошо.
Весной тоже буду брать.

----

Меня очень интересует работа с usb, насколько корректно работает плк с флешками, можно ли сделать полноценный архиватор, хотябы в мегабайт 10?
При использовании библиотеки асинхронного доступа (или встроенного в конфигурацию архиватора) проблем нет.
Однако в коде надо предусмотреть процедуру изъятия флешки - останов (по кнопке, команде и т.п.) обмена с флешкой, паузу в 1-2 секунды для синхронизации и можно вынимать.
Если этого не сделать - FAT32 может разрушится, что, в общем-то и не удивительно.

Филоненко Владислав
10.02.2016, 10:27
Про сброс понял.
Я думал переключатель работает как программный (Пуск \ Стоп программы, аналог ПЛК110).
А как получить доступ к DI переключателя?
Модуль "специальный вход"

_Pavel_
10.02.2016, 11:54
Хотя оно и сбросится (это просто дескриптор), но я крайне не рекомендую без серьёзных причин открывать/закрывать сокеты. Всё таки это система 24/7, а выделение ресурсов - это всегда фрагментация кучи. И ежели Вы не только сокеты меняете как перчатки, но еще и пару мегов ОЗУ в куче будете выделять/освобождать, рано или поздно (спустя 5 лет, когда все всё забыли, а прибор где-то в под Салехардом) куча настолько фрагментируется, что очередной malloc вернёт 0.

Я думал ресурсы при закрытии сокета освобождаются.
Тогда посоветуйте, пожалуйста, как грамотно поступить в такой ситуации:
ПЛК - TCP клиент. Он пытается соединиться с сервером, сервер может быть выключен. Так как SysSockConnect фактически ничего полезного не возвращает, ПЛК посылает пакет и ждёт ответ, если ответа не последовало закрывает сокет по таймауту, затем всё повторяется.
Не закрывать сокет, вызывая повторно SysSockConnect? Тогда через какой таймаут?
Сделать ПЛК TCP-сервером?

Дмитрий Артюховский
10.02.2016, 19:41
А вы сокет то не закрывайте

SysSockShutdown( SOCK_ACC, 2 ); (* 2- both - РАЗРЫВ В ОБЕ СТОРОНЫ *)

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

Дмитрий Артюховский
16.02.2016, 19:32
Хочется поднять вопрос о движении к "прилавку" ... кончились экземпляры для тестирования )))

_Pavel_
18.02.2016, 08:39
А вы сокет то не закрывайте

SysSockShutdown( SOCK_ACC, 2 ); (* 2- both - РАЗРЫВ В ОБЕ СТОРОНЫ *)

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

Куда-то пропало моё сообщение..
Так всё-таки, Владислав, поддерживается функция, которую упомянул Дмитрий? Что-нибудь изменилось с тех (http://www.owen.ru/forum/showthread.php?t=657&p=3446&viewfull=1#post3446) пор?

Кстати заметил при мин вц = 0, Last Time in mks равен ровно 1000, хотя Free processor resourse = 0. При этом реальное время цикла не более 100 мкс. Это значит возможность отключить MinCycleLength теперь отсутствует?

Филоненко Владислав
18.02.2016, 09:03
Куда-то пропало моё сообщение..
Так всё-таки, Владислав, поддерживается функция, которую упомянул Дмитрий? Что-нибудь изменилось с тех (http://www.owen.ru/forum/showthread.php?t=657&p=3446&viewfull=1#post3446) пор?

Кстати заметил при мин вц = 0, Last Time in mks равен ровно 1000, хотя Free processor resourse = 0. При этом реальное время цикла не более 100 мкс. Это значит возможность отключить MinCycleLength теперь отсутствует?

SysSockShutdown() работает.

Да, MinCycleLength==0 тождественно ==1.

_Pavel_
18.02.2016, 09:42
Да, MinCycleLength==0 тождественно ==1.

А почему? Раньше вроде работало хорошо....

Филоненко Владислав
18.02.2016, 15:13
Редкий ПЛК хорошо работал с MCL=0

приборист
19.02.2016, 15:33
Владислав, по тестированию UNM есть какие то результаты?

приборист
29.02.2016, 09:47
На сайте сист неправильная распиновку разъема rs232.
В итоге посмотрел на неё и прыгал вокруг ПЛК.
UNM по всей видимости, не работала по той же причине.
Вечером проверю.

_Pavel_
29.02.2016, 12:13
А вы сокет то не закрывайте

SysSockShutdown( SOCK_ACC, 2 ); (* 2- both - РАЗРЫВ В ОБЕ СТОРОНЫ *)

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


Попробовал так, но соединение с сервером не устанавливается :(. Сниффер показывает отстутсвие какой-либо активности функции SysSockConnect().
Только после закрытия-открытия сокета.

Валенок
02.03.2016, 08:25
Редкий ПЛК хорошо работал с MCL=0
Ну что за бред-то ? Ваши программисты прошивок не шмогли реализовать цикл "система"-нет задержки-"PLC_PRG" ? /* фривилинг */

Филоненко Владислав
02.03.2016, 10:40
Ну что за бред-то ? Ваши программисты прошивок не шмогли реализовать цикл "система"-нет задержки-"PLC_PRG" ? /* фривилинг */

Шмочь можно что угодно. Готовы платить за любопытство?

Филоненко Владислав
02.03.2016, 10:42
На сайте сист неправильная распиновку разъема rs232.
В итоге посмотрел на неё и прыгал вокруг ПЛК.
UNM по всей видимости, не работала по той же причине.
Вечером проверю.

Прошивка с UNM (и доп. сюрпризом) сейчас проходит тестирование и как только пройдёт - выложим.

Валенок
02.03.2016, 21:55
Шмочь можно что угодно. Готовы платить за любопытство?

Могу ли я рассматривать данное предложение как оферту ?


Мои предложения :

Вариант 1.
Да, я готов платить за удовлетворение своего любопытства.
Если сумма для меня будет легкоподъемной и адекватной, могу и наличными.

Вариант 2.
Если сумма покажется мне не совсем подъемной или адекватной, то начну аппелировать к тому, что организация где я работаю только за янв..март 16 года приобрела в Вашей фирме товаров на сумму более 270т.р (Это то, что сразу вспомнил). Без ложной скромности тонко намекну, что хотя в данном случае плательщиком выступал не я (не жена же за шубу платит) , решение о закупке прошло и через меня тоже некоторым боком (жена ведь тоже некоторое участие принимает в выборе шубы для себя)
Хотелось бы, кстати, уточнить - подходит ли данное обстоятельство под категорию "платить" ?
При необходимости, по Вашему запросу, могу предоставить ориентировочную закупочную стоимость Вашего оборудования с пока еще незакончившимися гарантийными обязательствами

Вариант 3.
Совмещение Вариантов 1 и 2.


Мои условия:

Внятно объяснить почему MO2 не может работать с циклом меньшим 1мс, если
1.МО1 - может.
2."индекс производительности" МО2/МО1 по моим оценкам где-то 1.6...1.8 (имел кратковременное знакомство), а МО1 на "систему" требутся 300..400мкс
3.Новое оборудование обычно не только "более быстые такты", но несколько улучшенное ПО. (Я - наивный китайский вьюноша ?)

Уточнение:
1.Речь о КДС2 для МО2.
2.Подразумевается пустой проект
3.При конфендициальности данной технической информации (далее ТИ), могу дать расписку о неразглашении на определенный (не более 10лет, простите) срок с чётко оговоренной финансовой ответственностью сторон :
а) С моей стороны - за разглашение ТИ
б) С Вашей стороны - за соответствие предоставленной ТИ фактическому положению вещей.


?

Sergey666
02.03.2016, 22:57
Отлично! Валенок!Риспект и уважуха ! Так и только так теперь надо с ними разговаривать!
Адекватность в прошлом . Наверное Филоненко очень сильно подняли зарплату . А ... может того настоящего Филоненко уже нет... и есть его жалкий клон.
Тов. Филоненко из человека , когда-то реально помогавшего пользователям , стал человеком , скидывающим мудрость из астрала . Овенцы !!! Отберите у Филоненко кальян ! И не разрешайте ему вообще курить на работе !!!!

приборист
02.03.2016, 23:17
Могу ли я рассматривать данное предложение как оферту ?


Мои предложения :

Вариант 2.
Если сумма покажется мне не совсем подъемной или адекватной, то начну аппелировать к тому, что организация где я работаю только за янв..март 16 года приобрела в Вашей фирме товаров на сумму более 270т.р (Это то, что сразу вспомнил). Без ложной скромности тонко намекну, что хотя в данном случае плательщиком выступал не я (не жена же за шубу платит) , решение о закупке прошло и через меня тоже некоторым боком (жена ведь тоже некоторое участие принимает в выборе шубы для себя)
Хотелось бы, кстати, уточнить - подходит ли данное обстоятельство под категорию "платить" ?
При необходимости, по Вашему запросу, могу предоставить ориентировочную закупочную стоимость Вашего оборудования с пока еще незакончившимися гарантийными обязательствами



Да с такой суммой можно и без ответа остаться ;)
У меня на нолик сумма больше, а по СПК ответов нет (Как и новой прошивки :()

Филоненко Владислав
03.03.2016, 06:14
Валенок, я думаю наличкой/безналом пойдёт. Кастомное производство прошивок под клиента у нас есть. Дорого не возьмём.
Однако, М01 также не имеет режима freeweeling. Где вы там его нашли?

Тов. Филоненко и теперь помогает клиентам. Но если клиент хочет странного, то хоть денег родная фирма получит. Ведь после получения странного тут будут вопли "Оно не так работает, как я мриял!"
P.S. Стоит сказать что клиент неправ, так сразу истинное лицо некоторых проступает, оскорбления, намёки странные.

_Pavel_
03.03.2016, 08:28
Тов. Филоненко из человека , когда-то реально помогавшего пользователям , стал человеком , скидывающим мудрость из астрала .

Зря вы так, мне вот Владислав реально помогает!

По теме freeweeling-а, я не понимаю зачем стрелять себе в ногу? Ну если ПЛК может, а пользователь хочет и понимает зачем ему это... (Что странного в желании получить максимальное быстродействие?)
Объясните в чём глобальный затык с реализацией такого режима работы? Почему ПЛК с минВЦ=0 работают не стабильно?

Филоненко Владислав
03.03.2016, 08:54
По теме freeweeling-а, я не понимаю зачем стрелять себе в ногу? Ну если ПЛК может, а пользователь хочет и понимает зачем ему это... (Что странного в желании получить максимальное быстродействие?)
Объясните в чём глобальный затык с реализацией такого режима работы? Почему ПЛК с минВЦ=0 работают не стабильно?

Основную ошибку в понимании я выделил жирным. freeweeling - это не максимальное быстродействие, а "как получится", т.е. цикл ПЛК работает по остаточному принципу, сколько ресурсов осталось на цикл ПЛК, так часто (и так же нестабильно) он будет работать.
Вот поэтому его и нет.
И реализовать его можно,только если задача цикла ПЛК имеет самый низкий приоритет.
Так что рекомендую сначала изучить мануал на CoDeSys, а кто не может читать много букв - погуглить CoDeSys freewheeling

И обнаружить там:

_Pavel_
03.03.2016, 11:00
Хорошо, тогда поправьте меня, если я не прав:
Для того чтобы получить стабильно работающий ПЛК с минВЦ > 0 я сейчас должен убедиться что время выполнения прикладного кода ПЛК + системной части гарантированно меньше, чем установленное значение минВЦ. Чтобы это гарантировать, я должен перестраховаться и поставить значение минВЦ на >= ~30% больше, чем значение в модуле статистики (накопленное с помощью функции MAX()).
Таким образом я должен ручками учесть любое "как получится", иначе я буду прерывать системные задачи ПЛК своим кодом? Так? Т.е. моя прикладная задача и есть IDLE для ПЛК в целом.

Филоненко Владислав
03.03.2016, 11:54
нет, если минВЦ > 0, то и задача цикла не idle-приоритет. И соответственно если система не перегружена, то перекрытия нет.
А если перегружена - то есть (но тут уже ничего не сделаешь, кроме увеличения цикла или снижения нагрузки).
На показания модуля статистики в любом случае надо смотреть, но если есть цикл - система (при отсутствии перегрузки) будет выдерживать цикл принудительно,
а если цикл=0 - она ничего не должна выдерживать и цикл идёт как есть.
Freewheeling обычно используют для визуализации. По остаточному принципу, сначала управляем, а если осталось время - рисуем красявости.

Валенок
03.03.2016, 15:07
Но если клиент хочет странного..

Однако, М01 также не имеет режима freeweeling. Где вы там его нашли?
За неимением графини будем иметь служанку.
В данный момент у меня нет живого МО1, но есть живой ПЛК154. Но смею надеятся - это не нарушит чистоты экперимента, т.к. это вроде еще более младшая модель.
Если данное обстоятельство является препятствием (ведь речь о МО1), то предполагаю следующие варианты:
1.Вы подождете некоторое время или проведете самостоятельно нижеуказанный эксперимент с МО1.
2.Признаю свою ошибку, т.к. ухудшение характеристик произошло не при МО1->МО2, а еще ранее - при ПЛК1xx->ПЛК110(МО1). Не заметил. Готов проставится.
3.ПЛК154 является более крутой* моделью по сравнению с ПЛК110(МО1). Признаю свою ошибку. С дуру предположил что при более позднем** выходе в серию прибор является более крутым*

*Под более крутым подразумеваю вычислительные возможности, а не наличие периферии.
**Кроме явноуказываемых случаев типа 63/ПР и т.п.

Если же 154 прокатывает, смотрим дальше.
Простейший код:

var
c,i : int; (*для наблюдения нужен только "c"*)
f : f_trig;
--------------
f(CLK := (time_to_dword(time()) mod 1000) > 500);
if f.q then
c := i;
i := 0;
end_if
i := i + 1;

Обмена - нет. Работы со строками - нет. Работы с Ai/Ao/REAL - нет

1.МинЦ = 1. Запускаем ... и опа. С = 1000. Нормально. Цикл 1мс. Как и ожидал. Статистика показывает свободное время 500..700мкс
2.МинЦ = 0. Запускаем ... и опа. С = 2400 (в среднем). Цикл 400мкс. Как и ожидал исходя из п.1. Настоящий полковник фривилинг

Теперь про freewheeling.
Давайте уточним - что под этим мы подразумеваем. Воспроизвожу любезно предоставленый Вами текст:
"...задача имеет самый низкий приоритет и выполняется в поледнюю очередь, если процессор не занят выполнением остальных задач"
Можно уточнить - а какие такие "остальные задачи" выполняются в п.1, каких нету в п.2 ?
При упоминании задачи в виде обмена самого КДС с ПЛК (ведь в онлайне) - отвечу что данный обмен был одинаковый для п.1 и п.2

Теперь про то что фривилинг "самый быстрый".
1.Ниже сравниваем задачи с одним уровнем приоритета и временем исполнения, в противном случае разговор не имеет смысла.
2.Наивные люди могут считать что задача с временем исполнения в 100мс, и МинЦ=1мс будет выполнятся 1000 раз за секунду. Но мы как взрослые люди понимаем, что задаваемый цикл реализуется фактически как "по возможности, но не чаще периода" - как Вы и сказали.
3.Из п.2 вытекает что при сравнении 2х задач (п.1) с разным МинЦ, цикличность МинЦ=0 (фривилинговой) будет >= цикличности (МинЦ > 0) другой.
Признаю что формулировка "самый быстрый" не совсем точная. Точная формулировка - "быстрее фривилига ничего (п.1) нет"


..будут вопли "Оно не так работает, как я мерил!...
Т.е. Вы утверждаете что при текущем положении вещей любой замер истинной цикличности всегда покажет равенство с заданной цикличностью ?


Валенок, я думаю наличкой/безналом пойдёт. Кастомное производство прошивок под клиента у нас есть. Дорого не возьмём.
Просьба озвучить сумму. Хочется все таки знать сколько стоит разработка революционного кода. Который в том или другом виде уже присутствовал в более ранних разработках. Да и принципе - почему бы и нет. Круг задача иногда меняется - вдруг потребуется.

Дмитрий Артюховский
03.03.2016, 15:58
ваши рассуждения про "сферического коня в вакууме" )) понятно, что когда плк нужно сделать i++ за цикл и не нужно это никуда посылать - то все круто! но в реальной жизни есть куча служебных задач синхронных и асинхронных.. практически все задачи ТАУ требуют точного следования кванту времени, иначе все управление напоминает прогноз погоды "по чукче" ...

ну и кстати, по пункту 2 - так было давно!!! (самая любимая прошивка 2.10.9 где точно так происходит) - сейчас (плк110м02) при вываливании пользовательского кода за выбранное время цикла наказывают "собакой" !

они, как разработчики, отвечают за надежную работу сервисов конфигуратора и прочих встроенных штуковин, вот и подняли приоритет своих задач... ну а пользователь нехай код оптимизирует (ну или делит на 2 устройства!!!)

_Pavel_
03.03.2016, 16:01
нет, если минВЦ > 0, то и задача цикла не idle-приоритет. И соответственно если система не перегружена, то перекрытия нет.
А если перегружена - то есть (но тут уже ничего не сделаешь, кроме увеличения цикла или снижения нагрузки)..

А вам не кажется что само понятие "система перегружена" мы как раз и создаём, вводя минВЦ?
С одной стороны Вы утверждаете, что у прикладного кода ПЛК должен быть высочайший приоритет и стабильный цикл, с другой минВЦ я обязан подобрать чтобы и системные задачи успевали выполняться, иначе проблемы с сетевым обменом и прочее..
Да и вообще, кому нужно выдерживать определённый цикл ПЛК? Неужели кто-то опирается на него при временнЫх расчётах внутри прикладного кода?

Филоненко Владислав
03.03.2016, 17:15
Павел, мин. цикл используется 2 путями:
1. У нас маленькая программа, которую мы хотим вызывать раз в 12 мс стабильно. Ставим цикл ПЛК 12 мс и получаем требуемое.
2. У нас расчёт столкновения 1000 молекул и он занимает 10 мс. Чтобы он выполнялся регулярно, без задержек, предсказуемо, мы ставим цикл 12 мс.

Если нам не нужно общаться с внешним миром с предсказуемым временем реакции - мы ставим freewheeling, наслаждаемся 2,4 кратным "виртуальным" ускорением и на реальной установке внезапно получаем задержку срабатывания тормоза на суппорте и сломанный станок за 10к баксов.

P.S. Заказ кастомных прошивок через менеджеров, они и прайс огласят. Если Вам так нужны "шашечки, а не ехать"

Филоненко Владислав
03.03.2016, 17:19
Т.е. Вы утверждаете что при текущем положении вещей любой замер истинной цикличности всегда покажет равенство с заданной цикличностью ?

Никого не интересует скорость поезда на перегоне. Всем нужно точно в срок приехать на вокзал.

_Pavel_
03.03.2016, 19:52
Владислав, спасибо за терпение, но позвольте ещё один вопрос:


и на реальной установке внезапно получаем задержку

Расскажите, пожалуйста, природу возникновения этих задержек. И о каких потенциальных временах задержки идёт речь?

Валенок
03.03.2016, 21:28
ваши рассуждения про "сферического коня в вакууме" )) понятно,
что когда плк нужно сделать i++ за цикл и не нужно это никуда посылать - то все круто!
К примеру такая пони :
6 x ПЧВ, 2x8А (на них 12pt1000 + 2x0-10в), 8ДФ, 8У, 16Р, ип320, сп270
ПЛК110-60. Занято 32Di/19Do
Примерно с десяток логически не связанных систем.
Параметров разных где-то под 100. Панельки удаленные и синхронные - все равно где менять параметры.Ни одна из панелей необязана быть все время включённой.
Кстати все на одной линии RS (мне так проще)
Оцените время минимальное/среднее/максимальное время цикла плк и максимальную реакцию на нажатие панельной кнопки ?


но в реальной жизни есть куча служебных задач синхронных и асинхронных..
практически все задачи ТАУ требуют точного следования кванту времени,
Можно несколько разнородных задач из ТАУ которые требуют точного следования кванту времени ?


ну и кстати, по пункту 2 - так было давно!!! (самая любимая прошивка 2.10.9 где точно так происходит) -
сейчас (плк110м02)..
пункт 2.
Плк110(мо1) 2.12.7, с = 2960..2970 (а ведь и прям шустрей чем 154, да ? и это - мо1)


сейчас (плк110м02) при вываливании пользовательского кода за выбранное время цикла наказывают "собакой" !
Т.е. за превышение МинЦа наказывают собакой ?


.. мин. цикл используется 2 путями:
1...
2...
3. У меня алгоритм работы с 1000 молекулами который предполагает обработку различного кол-ва молекул за цикл - от 100 до 1000. Среднее за тысячу итераций (циклов плк) - 200. И время соотв. может быть от 1мс до 10мс, со средним - 2мс. Выбор кол-ва для об-ки определяется заранее неизвестными входными данными в начале цикла, задача - обработать максимально быстро. Что предложим для Минца?


Если нам не нужно общаться с внешним миром с предсказуемым временем реакции"
Вот что бы общатcя с внешним миром предсказуемо, и не получать сломанных станков за 10кБаксов, потому что я поменял всего лишь прошивку, я полностью исключил, например, работу штатного мастера из конфигурации.


..Если Вам так нужны "шашечки, а не ехать"
Кстати - мне кажется что Ваш "прошиватель" ПЧВ предпочитает именно "шашечки", раз допускает косяк который можно обойти (я то привычный, фигли), а вот если бы кто прикрутил что-нить суръезное, и был бы верящим во все хорошее, и в то, что


..они, как разработчики, отвечают за надежную работу сервисов конфигуратора и прочих встроенных штуковин, вот и подняли приоритет своих задач...
то он и привез бы Вам тот станок. Который за 10к.


Никого не интересует скорость поезда на перегоне. Всем нужно точно в срок приехать на вокзал.
И меня не интересует. Просто у меня пересадка, а следующий поезд в Овнинск через сутки. Вот и хочется - на такси

Валенок
03.03.2016, 21:29
Расскажите, пожалуйста, природу возникновения этих задержек. И о каких потенциальных временах задержки идёт речь?
То же интересно. О природе.

capzap
03.03.2016, 21:42
И меня не интересует. Просто у меня пересадка, а следующий поезд в Овнинск через сутки. Вот и хочется - на такси

в Обнинск лучше на маршрутках, чем по железке

Филоненко Владислав
04.03.2016, 05:28
Владислав, спасибо за терпение, но позвольте ещё один вопрос:
Расскажите, пожалуйста, природу возникновения этих задержек. И о каких потенциальных временах задержки идёт речь?

Jitter есть неотъемлемая часть любого процесса управления, в котором есть ассинхронные задачи/компоненты или код с варьируемым временем выполнения.
Т.к. Поцессор 1 а задач несколько и они не синхронизованы, загрузка процессора напоминает сильно неровную дорогу. И не важно, что это за задачи.
Мы можем играть приоритетами задач - однако даже имея самую приритетную задачу, даже с аппаратным шедулером (т.е. прерывание) оно, прерывание, не может быть вызвано немедленно, всегда есть задержка, нестабильная и описанная производителем процессора, в единицы тактов.
Чем больше задачи-нем нестабильнее работа.
Есть способы бороться с jitter-ом. Например цикл PRU идеален. Jitter на уровне нестабильности срабатывания оптопар и флуктуаций частоты кварца. Но в PRU 1 задача, никаких прерываний, ветвлений и пр. Уже архивчик не создашь, модули не опросишь.

В М02 помимо естественного ускорения за счёт более мощного процессор основной упор был сделан на стабильность цикла управления. Для чего применена ОС реального времени. Сейчас jitter на пустой программе (без логина,логин всегда сильно влияет на jitter) не превышает 20% от времени цикла.

Ну а желающим ехать на шахид-такси, т.к. на поезд опоздал - остаётся только посочувствовать.

_Pavel_
04.03.2016, 08:43
Ну уж задержка на вызов обработчика по аппаратному прерыванию (высшего приоритета) настолько мала (вы правильно говорите - единицы тактов), что про неё даже говорить не стоит...

А в конфигурации задач в режиме онлайн - актуальная информация о джиттере? Например у меня сейчас 4000 мкс. При максимальном цикле ПЛК - 600 мкс.

Филоненко Владислав
04.03.2016, 09:11
Онлайн всегда увеличивает jitter - не всегда критично, но увеличивает. Вообще всё увеличивает jitter.

Время реакции любой системы состоит из (как раз вчера лекцию читал)

Твх + 2 Тцикла + Твых.
При этом Тцикла с учётом максимального джиттера.

Ну а если мы делаем нормальную, устойчивую систему управления - добавляем ещё 20 % в случае управления лампочкой в туалете и +50% для более серьёзных применений.
Для safety вообще другие подходы.

Рассмотрим, к примеру, систему управления шахид-мобилем.

Режим freewheeling.
Твх=1мс
Твых=1мс
Т цикла = 0,4 мс +10мс jitter=10,4 мс.

Время реакции 1+1+20,8 = 22,8 мс.
Добавим 50% (это же не лампочка, а шахид-мобиль) - 22.8 + 50%= 34.2 мс.
А водитель шахид-мобиля, посмотрев на синие писалки (2400 итераций i в цикле за секунду), думает, что время реакции меньше 1 мс.
Применяя аналогию из жизни, за рулём шахид-мобиля укуренный вусмерть водитель.
Приятной поездки!

Дмитрий Артюховский
04.03.2016, 09:54
К примеру такая пони :
6 x ПЧВ, 2x8А (на них 12pt1000 + 2x0-10в), 8ДФ, 8У, 16Р, ип320, сп270
ПЛК110-60. Занято 32Di/19Do
Примерно с десяток логически не связанных систем.
Параметров разных где-то под 100. Панельки удаленные и синхронные - все равно где менять параметры.Ни одна из панелей необязана быть все время включённой.
Кстати все на одной линии RS (мне так проще)
Оцените время минимальное/среднее/максимальное время цикла плк и максимальную реакцию на нажатие панельной кнопки ?

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


3. У меня алгоритм работы с 1000 молекулами который предполагает обработку различного кол-ва молекул за цикл - от 100 до 1000. Среднее за тысячу итераций (циклов плк) - 200. И время соотв. может быть от 1мс до 10мс, со средним - 2мс. Выбор кол-ва для об-ки определяется заранее неизвестными входными данными в начале цикла, задача - обработать максимально быстро. Что предложим для Минца?

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

Валенок
04.03.2016, 10:04
В некотором царстве, в некотором государстве, в стольном граде Овнинск, проживал гражданин В.Ф., работающий министром путей сообщения и, по совместительству, иногда замещающий пресс-секретаря. Не далёко от города Овнинск располагается городочек Автоматьевск, немалое кол-во жителей которого трудятся в Овнинске, благополучно добираясь на работу и домой на электричках, которые регулярно, раз в 5-15минут, мотаются по маршруту А-ск/Ов-ск.
И вот, в ясный солнечный день, министр путей сообщения, движимый видимо благими идеями экономии средств родного министерства, сообщает :
"Уважаемые жители города А-ск, по вашим многочисленным просьбам и в целях повышения качества обслуживания, мы приняли решение заменить все электрички за сутки одним фирменным поездом.
Количество мест в этом поезде равно суммарному кол-ву мест в тех электричках, мы даже добавили еще один вагон. В поезде - бесплатный вайфай, занавески на окнах, разносят кофе проводницы в коротких юбках, можно почистить ботинки и посмотреть кино.
Для сохранения хорошего вида из окон (всегда светло) и в целях удобного квантования суточного времени мы решили отправлять поезд в 12-00"

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

на шахид-такси ..
решили пропустить. Странные люди, страннные хотелкии им

остаётся только посочувствовать.

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

Владимир Ситников
04.03.2016, 10:14
Время реакции любой системы состоит из (как раз вчера лекцию читал): Твх + 2 Тцикла + Твых
Что значит "время реакции" в таком контексте?

максимальное время от подачи сигнала на DI до появления значения на DO?
среднее время от подачи сигнала на DI до появления значения на DO?
95% квантиль (https://ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D0%BD%D1%82%D0%B8%D0%BB%D1%8C) времени от подачи сигнала на DI до появления значения на DO?
Ещё что-то?


10мс jitter
Откуда тут 10мс? Имеется ввиду "10мс фильтр дребезга" или собственный шум цикла ПЛК?
Это матожидание?
Максимальное значение?
Как оно зависит от модели ПЛК?

Какое вообще распределение у этого jitter?
Какова вероятность, что 2 цикла подряд jitter окажется 10мс?

Я к чему: даже вне зависимости от распределения шума самого ПЛК, если мы уберём искусственные ожидания (т.е. сделаем мц=0), то распределение времени отклика должно снизиться.

Филоненко Владислав
04.03.2016, 10:47
"время реакции" - максимальное время от подачи сигнала на DI до появления значения на DO. Именно так. На как минимум 10000 циклах.
Всякие статистические оценки интересны начиная с 2 девятки после запятой, т.е. 99.99% - уже пойдет для управления не особо критичного процесса
Вероятность 95% означает, что установка неработоспособна в принципе.

10 мс - это примерное время джиттера в режим freewheeling. По результатам внутренних тестов. Поэтому я и говорю, что работает ПЛК в таком режиме плохо. Валенки на шахид-такси как раз к июню и доедут до магазина. Сломался автомобиль, что делать...


Что значит "время реакции" в таком контексте?
Я к чему: даже вне зависимости от распределения шума самого ПЛК, если мы уберём искусственные ожидания (т.е. сделаем мц=0), то распределение времени отклика должно снизиться.
Смелая гипотеза, но без знания архитектуры системы управления только гипотеза. Убираются ведь не искусственные ожидания, а время для более низкоприоритетных задач. И тут 2 варианта: Низкоприоритетные задачи вообще не выполняются ( т.е. прибор не работоспособен целиком или частично) и Низкоприоритетные задачи когда-нибудь будут принудительно переведены в высокоприоритетные, дабы, к примеру, буфер не переполнился - опа, и 10мс, 20мс, х.з. сколько времени цикл управления ждёт...

Но можете провести натурные испытания, всем будет интересно.

Дмитрий Артюховский
04.03.2016, 11:50
В некотором царстве, в некотором государстве....

собственно здесь вы сами ратуете за регулярное движение по расписанию, а не как "машинисту на душу ляжет" )))

_Pavel_
04.03.2016, 11:52
Рассмотрим, к примеру, систему управления шахид-мобилем.
Режим freewheeling.
Твх=1мс
Твых=1мс
Т цикла = 0,4 мс +10мс jitter=10,4 мс.
Время реакции 1+1+20,8 = 22,8 мс.


А какой минВЦ вы бы установили для такой системы?

_Pavel_
04.03.2016, 11:56
[I]
в человеческой программе, при таком разбросе в потребностях вычислений, ставят минц для отработки 200 молекул за раз, реально входной поток делят принудительно и обсчитывают по 100 молекул за цикл. Получается надежно и предсказуемо.

Ну и какова реакция будет у такой системы если мы ждём обсчёта конкретной молекулы?

Дмитрий Артюховский
04.03.2016, 11:58
Я к чему: даже вне зависимости от распределения шума самого ПЛК, если мы уберём искусственные ожидания (т.е. сделаем мц=0), то распределение времени отклика должно снизиться.

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

Филоненко Владислав
04.03.2016, 12:05
А какой минВЦ вы бы установили для такой системы?
Мы не знаем требований к системе управления. Мы оценили, что будет если поставить режим "как получится"

Владимир Ситников
04.03.2016, 12:08
Всякие статистические оценки интересны начиная с 2 девятки после запятой
Неправда ваша. Интересен как раз общий профиль.
Вот пример графика, который я хочу увидеть: http://hdrhistogram.org


"время реакции" - максимальное время от подачи сигнала на DI до появления значения на DO. Именно так. На как минимум 10000 циклах.


10 мс - это примерное время джиттера в режим freewheeling. По результатам внутренних тестов.
Результаты где-то опубликованы?
Слышать "99.99% подойдёт для не особо критичного процесса" и при этом не знать сколько обеспечивает сам ПЛК крайне странно.
Сколько девяток гарантирует ПЛК110 М02, в режиме мц=1мс?


Но можете провести натурные испытания, всем будет интересно.
Да, могу. М02 у меня есть. Но время на ПЛК разве что в апреле появится.


Низкоприоритетные задачи вообще не выполняются ( т.е. прибор не работоспособен целиком или частично)
Вам же говорят: нет низкоприоритетных. Нет от слова "совсем".
Есть одна задача в режиме freewheeling. Ну, конкретный проект так составлен, что задача всего одна.
Какие с ней проблемы?

Владимир Ситников
04.03.2016, 12:23
Я к чему: даже вне зависимости от распределения шума самого ПЛК, если мы уберём искусственные ожидания (т.е. сделаем мц=0), то распределение времени отклика должно снизиться.

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

Давайте так: белый (ну или какой он там) шум гарантировано есть как в режиме мц=1, так и в режиме мц=0.
Сделать систему без шума крайне и крайне невозможно.

Да, соглашусь, что абсолютные значения уровня шума могут отличаться в мц=1 и мц=0 режимах.
Но: есть внятное объяснение почему в режиме мц=0 абсолютное значение уровня шума сильно больше, чем в режиме мц=1?

Если же уровень шума примерно одинаков, то, очевидно, в режиме мц=0 значения задержек 99% 99.9% и т.п. должны быть меньше, чем в режиме мц=1.

Дмитрий Артюховский
04.03.2016, 12:49
Ну и какова реакция будет у такой системы если мы ждём обсчёта конкретной молекулы?

точно заранее неизвестно... очевидно что это зависит от момента возникновения "молекулы", но при таком подходе, время реакции более предсказуемо

Дмитрий Артюховский
04.03.2016, 12:56
Но: есть внятное объяснение почему в режиме мц=0 абсолютное значение уровня шума сильно больше, чем в режиме мц=1?

конечно. даже если вы сделаете свой блок с однозначным временем выполнения, время на фоновые задачи будет разным от цикла к циклу и не предсказуемым, поэтому мс=0 - дает джиттер. А когда вы ставите мс=1 - то джиттера по сути нет, а если он таки есть - значит вы не вложились в 1 мс и нужно ставить мс=2

capzap
04.03.2016, 13:01
почему[/B] в режиме мц=0 абсолютное значение уровня шума сильно больше, чем в режиме мц=1?

Если же уровень шума примерно одинаков, то, очевидно, в режиме мц=0 значения задержек 99% 99.9% и т.п. должны быть меньше, чем в режиме мц=1.

и что тут внятного, допустим в КДС не так явно выражено, например у семена есть ОВ фонового процесса, когда ОВ1 закончил свою работу, а время до минВЦ еще осталось, крутится фоновый процесс, в случае если минВЦ равен нулю, операции фонового процесса никогда не выполнятся, стоит ли тогда говорить о работоспособности проекта в целом?

Владимир Ситников
04.03.2016, 13:08
конечно. даже если вы сделаете свой блок с однозначным временем выполнения, время на фоновые задачи будет разным от цикла к циклу и не предсказуемым, поэтому мс=0 - дает джиттер
Обсуждается проект, где всего одна пользовательская задача. Под "фоновыми" понимаем только "обслуживание ввода-вывода, работу тактового генератора самого ПЛК и т.п.". Верно? Или в понятие фоновых включаете ещё что-то?

Почему, скажем, "обслуживание ввода-вывода" будет зависеть от настроек мц?
А почему тактовый генератор будет работать по-другому?

Вариант "меньше мц -> больше тепловыделение -> меняется частота генератора" мне кажется неправдоподобным. По крайней мере, не должен он давать погрешность в миллисекунды.

Следите за руками
1) Если при мц=1 "всё хорошо", то фоновые задачи гарантировано занимают не более 1мс.
2) Если при этом настроить мц=0, то время работы этих "фоновых задач" возрасти не должно. С чего бы им замедляться?
3) Значит, в режиме мц=0, пользовательская программа имеет возможность вызываться чаще, чем в режиме мц=1.
4) Значит, в режиме мц=0 время отклика ниже, чем в режиме мц=1.

_Pavel_
04.03.2016, 13:41
2) Если при этом настроить мц=0, то время работы этих "фоновых задач" возрасти не должно. С чего бы им замедляться?


Я так думаю что фоновые задачи будут иметь более низкий приоритет перед программой ПЛК и будут выполняться в момент простоя, таким образом будет гарантирована стабильность цикла. Типа не успели в этом цикле простоя, выполнимся в следующем...

Филоненко Владислав
04.03.2016, 13:48
Сколько девяток гарантирует ПЛК110 М02, в режиме мц=1мс?
Внимательнее читаем форум. 20% джиттер от времени цикла

Филоненко Владислав
04.03.2016, 13:49
Вам же говорят: нет низкоприоритетных. Нет от слова "совсем".
Есть одна задача в режиме freewheeling. Ну, конкретный проект так составлен, что задача всего одна.
Какие с ней проблемы?

Тогда зачем мы на форуме ОВЕН обсуждаем приборы других фирм. У нас есть в ПЛК низкоприоритетные задачи :D

Дмитрий Артюховский
04.03.2016, 13:51
1. да 2. да 3. да 4.да, но оно разное от цикла к циклу!

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

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

Филоненко Владислав
04.03.2016, 13:53
Обсуждается проект, где всего одна пользовательская задача. Под "фоновыми" понимаем только "обслуживание ввода-вывода, работу тактового генератора самого ПЛК и т.п.".

Без этого только "обслуживание ввода-вывода сферическая задача в вакууме получается. Если бы людям нужны были только прикладные задачи - сегнетикс бы завоевал бы весь рынок, там можно писать на С, и вообще все фоновые задачи убрать чтобы холопы не мешали. Однако в автоматизации всем нужен I/O - что автоматически ведет к появлению фоновых задач.

Филоненко Владислав
04.03.2016, 13:59
[QUOTE=vladimirisitnikov;199718
Если при этом настроить мц=0, то время работы этих "фоновых задач" возрасти не должно. С чего бы им замедляться?
[/QUOTE]
мц=0 автоматически означает, что или задача цикла должна иметь самый низкий приоритет. И джиттер будет максимальный.
Или задача не имеет минимальный приоритет - следовательно не работают все задачи более низкого приоритета. Например не работаю входа. Прекрасно.

Дмитрий Артюховский
04.03.2016, 14:40
мц=0 автоматически означает, что или задача цикла должна иметь самый низкий приоритет. И джиттер будет максимальный.
Или задача не имеет минимальный приоритет - следовательно не работают все задачи более низкого приоритета. Например не работаю входа. Прекрасно.

а вот это утверждение совсем непонятно, зачем так?

считали входы, упорядочили принятые на настоящий момент данные с интерфейсов, и начинаем выполнять пользовательский цикл, прерывая неотложными задачами (например, отсчеты входов для фильтрации, прием данных по интерфейсам)... по завершении, выставили выходы и настрополили процессы асинхронных обменов... далее пауза до начала цикла, либо без паузы.... почему что-то должно выпасть?

Филоненко Владислав
04.03.2016, 15:38
Потому что тогда у нас нет многозадачности. Плоская система, программируемое реле, по сути. Например задача обработки Ethernet должна идти асинхронно, но с приоритетом ниже цикла, чтобы не влиять на цикл - буфер позволяет отложить немедленную обработку пакетов до определённого момента, пока не кончится.
Входа тоже должны полится циклично, чтобы корректно работала фильтрация, а не как цикл позволит.
По сути все задачи, кроме синхронизации I/O CoDeSys выполняются асинхронно.
Шим должен шимить, даже если цикл тормозит.
USB должно передавать, даже если цикл тормозит.
UART тем более.
И даже SPI, тоже не бесконечно толерантно к провалам обмена.

Или всё это делаем в цикле ПЛК, библиотеками. И получаем ещё больший джиттер. И только простейшие функции.

Дмитрий Артюховский
04.03.2016, 15:54
это все понятно и очевидно... но что именно, в приведенной схеме работы, приведет к выпадению отдельных процессов, если мы перестаем следить за выдерживанием времени цикла? с джиттером все понятно, он большой...

capzap
04.03.2016, 18:04
это все понятно и очевидно... но что именно, в приведенной схеме работы, приведет к выпадению отдельных процессов, если мы перестаем следить за выдерживанием времени цикла? с джиттером все понятно, он большой...

ну так вроде как, если более приоритетная задача только закончившись, сразу встает в очередь снова выполнятся, процессор обязан запустить её, а не низкоприоритетную задачу и она бедная так и будет ждать когда появится окно, но ни как не выполнятся

Филоненко Владислав
04.03.2016, 18:41
это все понятно и очевидно... но что именно, в приведенной схеме работы, приведет к выпадению отдельных процессов, если мы перестаем следить за выдерживанием времени цикла? с джиттером все понятно, он большой...

Например задача обработки Ethernet должна идти асинхронно, но с приоритетом ниже цикла

То, что для Вас нет вытесняющей многозадачности - не значит, что её вообще нет!

Дмитрий Артюховский
04.03.2016, 21:38
дык, вроде как принято говорить о том что задача с более низким приоритетом получает меньше квантов выполнения, чем задача выше по приоритету, а не то что она вообще их не получает ))) ... конечно можно всю свою задачу объявить "time critical", ( а еще лучше просто запретить системные прерывания!) послав все остальное в down, но как-бы не правильно это )) .. и существование прошивок с "резиновым" циклом говорит что вы об этом знаете и умеете, когда хочется )))

Владимир Ситников
05.03.2016, 00:06
Например задача обработки Ethernet должна идти асинхронно, но с приоритетом ниже цикла
Да, пример про ethernet хороший, понятный.

Тогда интересно как будет работать такое:
1) PLC_PRG -- пустая программа (так, чтобы она время не потребляла)
2) мц=1
3) "основной код" выполняем в отдельной freewheeling задаче

При таком подходе "ethernet" ломаться не должен, и "основной код" сможет выполняться чаще чем 1мс.

Валенок
05.03.2016, 00:14
//время реакции на кнопку (воздействие) в удаленных устройствах и время цикла мало связанные величины - нажатия..
Вы предположили что у меня все задачи i++. Я Вам предложил чуть больше чем i++. И я про оценку времени. Если что.


. Кстати, разводя устройства на несколько интерфейсов,.
ну сгорели другие интерфейсы ?


..удобно должно быть пользователю а не разработчику..
А Вам не приходило в голову, что по отношению к Овену я – пользователь ?



в человеческой программе, при таком .. ставят минц для отработки 200 молекул за раз, ...обсчитывают по 100 молекул за цикл. Получается надежно и предсказуемо.
Вот про молекулы :
Такая работа где можно спать, курить бамбук, опаздывать, легко отпрашиваться с домой с обеда. Требуется только одно – при необходимости появится в нужном месте и решать проблему до ее разрешения вне зависимости от выходного, зубной боли, нового года, свадьбы и т.п. Например – пожарные.
Вы предлагаете сидеть от звонка до звонка, и если пожар , но 18-00 (смена окончилась) – по домам, c утра продолжу ?
(Пжста – не надо про подготовку техники и т.п. чем можно занятся на работе при отсутствии пожаров)

Видите ли в чем дело. Здание строят из маленьких кирпичиков. Но если кирпичи – гуановые, то будь Вы 5-жды разъархитектор, зданию – кранты. И при попытке выяснить качество новой модели кирпичей заявляют – да все пучком. Кирпичи надежные, тока ни в коем случае нигде никогда нельзя половинки класть. Здание нае-тся. А так - кирпичи новые ого-го !


собственно здесь вы сами ратуете за регулярное движение по расписанию, а не как "машинисту на душу ляжет" )))
Если внимательно читали, то могли бы увидеть что в контексте ежедневной езды на работу расписание электричек это “в любое время”, а расписание поезда – “да пошел он в ж-у”


Обсуждается проект, где всего одна пользовательская задача...
Да о чем Вы ? Думаете слов “одна” кто-то увидит ?

..Следите за руками..
И c этим проблемы. Но зато

Внимательнее читаем форум...



Без этого только "обслуживание ввода-вывода сферическая задача в вакууме получается.. Однако в автоматизации всем нужен I/O - что автоматически ведет к появлению фоновых задач.
Вы лекцию в детсаде читаете ? I/О нередко можно и без участия Ваших конфигураций сделать. Быстрее, удобнее и короче. В этой одной задаче.


мц=0 автоматически означает, что или задача цикла должна иметь самый низкий приоритет.
Кто-то спорит что у Вас означает мц=0 ? Это Вы лучше знаете. Вы же из авторов ? Но только Вы попутали мягкое и горячее. Время и приоритет. У фривилинга не может быть другого приоритета ?


Валенки на шахид-такси как раз к июню и доедут до магазин.
Валенок – доедет. И побыстрее (см. выше) А на Вашем оборудовании ведь можно вообще не доехать. Ведь

.Сломался автомобиль, что делать...
Овенмобиль, г-н министр. Овенмобиль.
Вы ведь уже минимум 3 года не можете разрешить косяк с Вашим оборудованием. Например с ПЧВ..
И, походу, каждый год ... одни и те же рыбаки ... на одной и той же льдине... (С)
Поэтому и пугают Ваши нововведения подрезающие уже существующие возможности.


Приятной поездки!
Кстати - спасибо. Я ведь действительно приятно еду. Без этого плача ярославны – "ой пришивку поменял, ой она таржету не соответствует.."

Филоненко Владислав
05.03.2016, 06:43
дык, вроде как принято говорить о том что задача с более низким приоритетом получает меньше квантов выполнения, чем задача выше по приоритету, а не то что она вообще их не получает ))) ... конечно можно всю свою задачу объявить "time critical", ( а еще лучше просто запретить системные прерывания!) послав все остальное в down, но как-бы не правильно это )) .. и существование прошивок с "резиновым" циклом говорит что вы об этом знаете и умеете, когда хочется )))
Дмитрий, прочитайте, пожалуйста, книжку про многозадачность. Чувствую, в этой теме у Вас сформировались мифы и легенды.

Филоненко Владислав
05.03.2016, 06:46
Да, пример про ethernet хороший, понятный.

Тогда интересно как будет работать такое:
1) PLC_PRG -- пустая программа (так, чтобы она время не потребляла)
2) мц=1
3) "основной код" выполняем в отдельной freewheeling задаче

При таком подходе "ethernet" ломаться не должен, и "основной код" сможет выполняться чаще чем 1мс.

Ethernet -это одна из асинхронных задач. В М02 их больше 3-х десятков, и большая часть имеет приоритет иже цикла. А freewheeling задача в системе одна, idle.

Филоненко Владислав
05.03.2016, 06:55
В
ну сгорели другие интерфейсы ?

Овенмобиль

Кстати - спасибо. Я ведь действительно приятно еду. Без этого плача ярославны –

Извините, Валенок, я думал Вам действительно хочется прошивку, а оказалось:
Вы сожгли оборудование и пришли сюда душу отвести-поругаться. Ведь во всех бедах Овен виноват.
И Овеном, как я понял, не пользуетесь.
Идите ругаться на Цензор.
Тут люди делами занимаются.

Scream
05.03.2016, 06:56
плк110 м02 программируется codesys 3?

Валенок
05.03.2016, 10:59
.. я думал Вам действительно хочется прошивку, ..
Ну да. Я действительно ожидаю не прошивку.
Я ожидаю прошивку с решенными проблемами старых прошивок.

Видите ли в чем дело, Владислав. Благодаря Вашим программистам я действительно чуть не

... сожгли оборудование .
стимостью почти

.. за 10к баксов.
Но так как я человек подготовленный к вывертам Ваших программистов, обошлось без последствий.


Идите ругаться на Цензор..
Вы наверное представляете меня мальчиком который написав 3 буквы на заборе, похихикав, убегает ?
Повторюсь (3й раз)
А на Вашем оборудовании ведь можно вообще не доехать. Ведь - Овенмобиль, г-н министр. Овенмобиль.
Вы ведь уже минимум 3 года не можете разрешить косяк с Вашим оборудованием. Например с ПЧВ..


.Тут люди делами занимаются.
Простите, г-н министр, что отвлек Вас от решения вселенских задач.

PS
Кстати, Вы так часто произносите слово "шахид-такси" в ассоциации с какой-то проблемой, что предоположу что у Вас был какой-то неприятный инцидент. Если это так - выражаю свои глубочайшие соболезнования и рад Вам сообщить, что в следующий раз не нужно выходить на Шоссе Энтузиастов для поимки шахид-такси. Можно просто вызвать что-нить приличное по телефону. И удобнее и идти так далеко не нужно.

Филоненко Владислав
05.03.2016, 13:12
плк110 м02 программируется codesys 3?
нет, версией 2.3

Scream
05.03.2016, 13:48
нет, версией 2.3
значит на сайте не ошибка.
но ведь была информация что будет работать с codesys 3?
и codesys 2.3 теперь навсегда в 110 M02?

Вольд
05.03.2016, 14:20
Предлагаю установить на фасаде головного офиса фирмы "ОВЕН" огромный плакат с надписью

Клиент всегда прав ! ! !

Валенок
05.03.2016, 15:13
Это опасно. Плакат закроет окна. В офисе станет темно. Могут появится дополнительные проблемы ))

Newcomer
05.03.2016, 15:37
Это опасно. Плакат закроет окна. В офисе станет темно. Могут появится дополнительные проблемы ))

Тогда плакат на крышу.

_Pavel_
05.03.2016, 16:28
Ethernet -это одна из асинхронных задач. В М02 их больше 3-х десятков, и большая часть имеет приоритет иже цикла. А freewheeling задача в системе одна, idle.

А можно ли как-то оценить максимальное время, необходимое на обработку каждой из асинхронных задач?
То есть максимальный джиттер для idle задачи получится если вдруг все эти асинхронные задачи решат выполниться условно в одно время так?

_Pavel_
17.03.2016, 13:21
Был вчера на конференции Инсата. Будет поддержка Master Scada 4D в контроллере [М02] - это отлично. Ждём.

ASo
17.03.2016, 13:56
Инсат и Овен - к сожалению не Сименс. В этом проблема. Именно поэтому предыдущий заход, в виде РТ МС3 в ПЛК100 - провалился.

Eugene.A
17.03.2016, 14:13
Был вчера на конференции Инсата. Будет поддержка Master Scada 4D в контроллере [М02] - это отлично. Ждём.
Что, впечатлил стенд с лампочкой и вентилятором? Сам такое хочу. Мы даже со смартфона его потыкали. Жаль только, он не на овеновском ПЛК был сделан. А так - сказка.

_Pavel_
17.03.2016, 15:28
Инсат и Овен - к сожалению не Сименс. В этом проблема. Именно поэтому предыдущий заход, в виде РТ МС3 в ПЛК100 - провалился.

Аппаратно-программная платформа [M02] мягко говоря ушла вперёд по сравнению с ПЛК100, должно получиться, главное верить.

Филоненко Владислав
17.03.2016, 15:40
Чтобы потыкать со смартфона и лампочка включилась нужна мастерскада? Да ещё 4D??? Я такую штуку на спор за полчаса поднял штатными средствами ПЛК и триальной скадой для андроида. Через модбус TCP. Причем 25 минут искал скаду.
Если уж рекламируете чужой продукт у нас на форуме, попутно критикуя наш, делайте это должным образом :)

Eugene.A
17.03.2016, 16:00
Если уж рекламируете чужой продукт у нас на форуме, попутно критикуя наш, делайте это должным образом :)
А какой чужой продукт я рекламирую? На конференции выступал представитель Овена в свете поддержки Master Scada 4D контроллерами Овен, и утверждал, что СПК207, ПЛК100 и ПЛК304 уже поддерживают новую версию скада. Откуда я сделал вывод о тесной кооперации между ними. Тем более, что ИнСат и продаёт продукцию Овен. Так вы уж там разберитесь между собой.
"16 марта 2016 года компания ОВЕН приглашает на конференцию «MasterSCADA 4D. Новые возможности в новой платформе», которую проводит партнер ОВЕН, ведущая российская компания-разработчик программного обеспечения для систем автоматизации ИнСАТ."
http://www.owen.ru/news/34046564

_Pavel_
17.03.2016, 18:47
Что, впечатлил стенд с лампочкой и вентилятором? Сам такое хочу. Мы даже со смартфона его потыкали. Жаль только, он не на овеновском ПЛК был сделан. А так - сказка.

Не, к стенду мы даже не подходили. Порадовала высокая интеграция системы: в одной среде и верх и низ и web и облака

_Pavel_
17.03.2016, 19:04
Чтобы потыкать со смартфона и лампочка включилась нужна мастерскада? Да ещё 4D??? Я такую штуку на спор за полчаса поднял штатными средствами ПЛК и триальной скадой для андроида. Через модбус TCP. Причем 25 минут искал скаду.
Если уж рекламируете чужой продукт у нас на форуме, попутно критикуя наш, делайте это должным образом :)

Если этот пост обращён ко мне, то:
1. Я не критикую ваш продукт, мне он нравится. Изучаю и пользуюсь. Радует, что возникающие проблемы решаются.
2. Я не пытался что-либо рекламировать. Просто отметил позитивный факт, касающийся САБЖа, сообщённый вашими коллегами.
Насчёт реализайии "наспор": ключевой момент здесь навероне то, что для этого вы воспользовались разным софтом, а тут всё в одном.

Филоненко Владислав
23.03.2016, 13:30
ПЛК110-М02 (начиная с версии 0.3.51) получил новый функционал:
Теперь возможна работа с преобразователями USB->RS232 и USB->RS485 на базе микросхем FTDI следующих модификаций:
FT8U232AM
FT232B
FT232R
FT2232D

Допускается подключение к ПЛК 1 преобразователя (возможно через хаб, чтобы и флешку подключать, но не все хабы работают правильно) и хаб должен быть с питанием
Доступ к доп. порту возможен как через библиотеку SySLibCom, так и через конфигурацию.
# COM-порта 5
Для работы через конфигурацию используйте таргет версии 3.10

Дополнительно:
Исправлена работа с UNM

IVM
02.04.2016, 16:21
Может кто подскажет как связать по USB ПЛК110-М02 с ПК с ОС Windows 98. У фирмы "ОВЕН" нет драйвером под эту ОС.

IVM
02.04.2016, 17:29
Владислав, на базе какой микросхемы сделан USB-порт нового ПЛК110 ?

Филоненко Владислав
03.04.2016, 17:32
Владислав, на базе какой микросхемы сделан USB-порт нового ПЛК110 ?
TI1808
Насколько я знаю, 95/98 не поддерживаются.

Zecher
05.04.2016, 13:59
В следующей модификации хотелось бы видеть два Ethernet.
Часто требуется скоростная связь с СП\СПК и скадой без посредников.
А если будет полноценная Ethercat система (ПЛК+панель оператора+модули), то вообще счастье!

Филоненко Владислав
05.04.2016, 15:12
В следующей модификации хотелось бы видеть два Ethernet.
Часто требуется скоростная связь с СП\СПК и скадой без посредников.
А если будет полноценная Ethercat система (ПЛК+панель оператора+модули), то вообще счастье!

Ethercat = + 200-300$ к цене. + цена модулей. А так ничего нереального.
Скоростная связь с СП\СПК и скадой - У Вас такие потоки данных, что 1 Ethernet не справляется? ПЛК такие потоки сгенерировать в принципе не может.
Что же Вы делаете?

Zecher
06.04.2016, 06:31
Ethercat = + 200-300$ к цене. + цена модулей. А так ничего нереального.
Скоростная связь с СП\СПК и скадой - У Вас такие потоки данных, что 1 Ethernet не справляется? ПЛК такие потоки сгенерировать в принципе не может.
Что же Вы делаете?

Как соединить ПЛК с СПК и скадой по Ethernet? Причём крайне нежелательно цеплять всякие свичи.
Дело не в скорости потоков, а в надёжности.

Филоненко Владислав
06.04.2016, 12:52
Как соединить ПЛК с СПК и скадой по Ethernet? Причём крайне нежелательно цеплять всякие свичи.
Дело не в скорости потоков, а в надёжности.

Покупаем пром-switch и всё хорошо. http://www.lantan.pro/catalog/lantan/switches/industrial-hardened-managed-switches/?utm_source=yandex_lantan&utm_medium=cpc&utm_campaign=13382132&utm_term=%D0%BF%D1%80%D0%BE%D0%BC%D1%8B%D1%88%D0%B B%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20ethernet&utm_content=0.0.premium.3.no.835611371.1108311845. 3975699095&yclid=1753296725170982001

Zecher
07.04.2016, 06:45
Покупаем пром-switch и всё хорошо. http://www.lantan.pro/catalog/lantan/switches/industrial-hardened-managed-switches/?utm_source=yandex_lantan&utm_medium=cpc&utm_campaign=13382132&utm_term=%D0%BF%D1%80%D0%BE%D0%BC%D1%8B%D1%88%D0%B B%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20ethernet&utm_content=0.0.premium.3.no.835611371.1108311845. 3975699095&yclid=1753296725170982001

Да, по цене соизмеримый с ПЛК 110.
Лучше вместо бесполезных двух RS232 поставить один ethernet и всем будет хорошо и цена не изменится.

capzap
07.04.2016, 07:55
Да, по цене соизмеримый с ПЛК 110.
Лучше вместо бесполезных двух RS232 поставить один ethernet и всем будет хорошо и цена не изменится.

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

Mikhailo
08.04.2016, 05:07
Как соединить ПЛК с СПК и скадой по Ethernet? Причём крайне нежелательно цеплять всякие свичи.
Дело не в скорости потоков, а в надёжности.
Проблема в том, что наличие двух независимых портов никак не обеспечит надежности. Ведь контроллер-то один! :D И питание у него нерезервированное и нет режимов RUN-STOP отдельно для каждого порта.
Вы не очень понимаете про надежность в данном случае.

Zecher
08.04.2016, 10:28
Проблема в том, что наличие двух независимых портов никак не обеспечит надежности. Ведь контроллер-то один! :D И питание у него нерезервированное и нет режимов RUN-STOP отдельно для каждого порта.
Вы не очень понимаете про надежность в данном случае.

Чем меньше различных устройств в оборудовании, тем больше надёжность. ПЛК+свитч = менее надёжны, нежели один ПЛК.


У 110-го почему бы не подключить панель по 232 ,а скаду по езернет.

С моей точки зрения, 232 самый бесполезный интерфейс в промышленности. Скорость и помехозащищённость хуже некуда.

ASo
08.04.2016, 12:51
Чем меньше различных устройств в оборудовании, тем больше надёжность. ПЛК+свитч = менее надёжны, нежели один ПЛК.
А отсутствие контроллера - еще надежнее!!!
Поэтому - займитесь делом.

Mikhailo
08.04.2016, 12:54
С моей точки зрения, 232 самый бесполезный интерфейс в промышленности. Скорость и помехозащищённость хуже некуда.
Это да, еще добавьте дальность передачи (до 5-15 метров) и количество устройств в сети (всего 2).

Андрей Шатохин
20.04.2016, 16:29
А велосипед для чего ? ;)

=)))))))))))

Андрей Шатохин
20.04.2016, 16:33
Подтверждаю проблему Дмитрия Артюховского.
При попытке отправить пакет примерно 380 байт сокет на передачу более не работает, т.е. даже маленькие пакеты после этого не идут. Логи сниффера выложу завтра.
Приём при этом работает нормально.

Я это начал наблюдать ещё в старых ПЛК-110-60 с прошивкой 2.15.8, у меня из-за этого даже недавно пришедшие ПЛК (2.15.8) были перепрошиты на 2.14.0. =((( иначе - хрен, мне 256 байт мало.

Филоненко Владислав
20.04.2016, 21:07
Товарищи! Прежде чем писать о проблеме, пожалуйста, прочитайте хотя бы 10 последних страниц. Проблема с большими пакетами была успешно отловлена и исправлена. Прошивки оперативно появляются. Пользуйтесь.

RV9WFJ
05.05.2016, 15:37
Сейчас заметил что при использовании Сетевых переменных в проекте падет связь ПЛК110 М01 (прошивка 0.3.52) и CoDeSys 2.3 через Ethernet как только в сети появляется второй контроллер (СПК207) читающий/записывающий сетевые переменные в первый контроллер. Так и должно быть или это баг?

Филоненко Владислав
05.05.2016, 20:18
Это проблема несовместимости 3 и 2-го КоДеСиса по сетевым переменным.

RV9WFJ
06.05.2016, 06:23
Странно, из CS2.3 в CS3.5 у меня данные передаются, пришлось только конф файлл ручками создать. Если не ошибаюсь то на прошлогодней конференции Пролога немцы говорили что такая связь возможна с помощью "напильника". Раз такие сложности придется пользовать проверенный ModBus TCP.

Филоненко Владислав
06.05.2016, 19:08
Да,в одну сторону передаёт. В другую нет. Напильник у немцев, никому не дают.

Данис
31.05.2016, 09:17
Посетил семинар в рамках выставки в Уфе.
Выступающий сообщил, что контроллеры ПЛК110 [M02] доделаны и поступили в серийное производство.
В прошлом году от техподдержки исходила информация, что есть пока еще только инженерный образец, версия прошивки у которого начинается с 0, например, 0.2.15. Они сказали, что когда контроллер "допилят", тогда выйдет прошивка, начинающаяся с 1, например 1.0.

Прошу уточнить, действительно ли контроллеры наконец доделаны, и где можно скачать самую свежую версию прошивки (в настоящий момент располагаем 0.2.58), в первом сообщении этой ветки все еще висит старая 0.2.15?

Николаев Андрей
31.05.2016, 11:27
Контроллеры в продаже.
Последняя прошивка здесь: http://www.owen.ru/catalog/codesys_v2/73292499
И она не обязательно должна начинаться с 1.х :)

RV9WFJ
13.06.2016, 17:42
Где-то писали что новый ПЛК110 [M02] умеет более одного сокета поднимать по TCP.
Имею ПЛК110-30.Р.М. [M02] прошивка m02v0.3.53. На чистом контроллере связь GateWay прекрасно устанавливается через TCP. Стоит в проект добавить ModBus TCP Slave как к контроллеру больше не подключиться из CoDeSys по Ethernet. При этом контроллер пингуется и Telnet соединение устанавливается на 1200 порт. Подключение напрямую пачкордом. Это проблемы с приоритетом задачи? Или можно победить?
P.S. А так хотелось удаленно контроллер обслуживать через OpenVPN...

Филоненко Владислав
14.06.2016, 09:51
Проектик выложите то.

RV9WFJ
14.06.2016, 13:08
Проектик выложите то.
Выкладываю, обмен с ПЧВ через RS485 можно не смотреть. ModBus TCP примитивный
Пока не пойму в чем дело, но сейчас GateWay заработал через Ethernet. Вечером попробую еще через OpenVPN.

Филоненко Владислав
14.06.2016, 14:33
Проверьте, что нет ПЛК/приборов с тем-же IP.

RV9WFJ
14.06.2016, 16:36
Выявил закономерность. Связь работает нормально до тех пор пока она сама случайно не разорвется в подключенном состоянии (смотрим в онлайне какой-то процесс, через несколько минут связь стабильно рвется. Такое и на старых контроллерах постоянно происходит если переменных много отображается) И вот после такого разрыва связь по Ethernet поднимается только перезагрузкой. Возможно внутри ПЛК разрыв связи не отлавливается.

Оборудования с тем же IP точно нет, там из оборудования то модем и два контроллера в сети.

Попробовал сейчас связаться через OpenVPN. Ping идет, среднее время 550-650 мс, telnet цепляется, GateWay упорно не соединяет. При чем контроллер чистый, специально заводской сброс сделал перед уходом для чистоты эксперимента.

Филоненко Владислав
16.06.2016, 08:25
C VPN мы не пробовали.
При обрыве связи есть таймаут в 10 секунд на дисконект в ПЛК.
Т.к. у Вас 5мс цикл - таймаут соответственно увеличивается.

Для начала рекомендую цикл уменьшить, а мастера разнести по чётным и нечётным циклам.

RV9WFJ
18.06.2016, 10:38
Сделал все согласно рекомендации. Не помогло, все так же telnet подключается GateWay нет.

Для информации. В одной подсети подсети с ПЛК110 М02 находится СПК207. И с ним GateWey CS3.5 вяжется без проблем. Думаю проблема или в GateWay CS2.3 или в ПЛК110 М02. Для локализации проблемы попробую на следующей неделе подкинуть в подсеть старый ПЛК110, если смогу найти на складе.

Еще в тему удаленной поддержки, Владислав, подскажите возможно ли какими-то средствами по сети сделать перезагрузку контроллера. Пока не придумал ничего лучше, чем заливать проект отправляющий ПЛК к Watchdog. С СПК все проще, правда там своих тараканов хватает.

Филоненко Владислав
18.06.2016, 11:24
Можно, команда rebooT

Эдуард_Н
30.06.2016, 13:08
Скажите, появится ли новая линейка обновлённого ПЛК160?

CEkip
30.06.2016, 15:16
Скажите, появится ли новая линейка обновлённого ПЛК160?

С ПЛК160 придется оставлять исходники заказчику. Так как он является средством измерения и должен проходить поверку каждые два года. Вот тут то могут и начаться приключения ...

Эдуард_Н
30.06.2016, 15:29
С ПЛК160 придется оставлять исходники заказчику. Так как он является средством измерения и должен проходить поверку каждые два года. Вот тут то могут и начаться приключения ...

Если в договоре отведена сумма на разработку ПО то отдать так и так придётся. Если этого пункта нет то и ПО отдавать не надо. А стыковать ПЛК110 и модули расширения дороже выходит чем взять один 160ый.
И у нас в городе вряд ли ПЛК могут поверить, только если отправлять куда-то, а этого делать не будут из-за полной остановки объекта.

CEkip
30.06.2016, 15:40
Если в договоре отведена сумма на разработку ПО то отдать так и так придётся. Если этого пункта нет то и ПО отдавать не надо. А стыковать ПЛК110 и модули расширения дороже выходит чем взять один 160ый.
И у нас в городе вряд ли ПЛК могут поверить, только если отправлять куда-то, а этого делать не будут из-за полной остановки объекта.

на последних двух объектах вопрос о поверке ПЛК160 и аналоговых модулей ввода/вывода был первым. раньше тоже не заморачивался

Филоненко Владислав
08.09.2016, 13:50
Нами и нашими потребителями была замечена проблема обмена между ПЛК со 2 и 3-м Кодесисом посредством сетевых переменных (UDP).
Удалось решить эту проблему.
Для этого необходимо:
1. Использовать NetVarUdp_LIB_V23.lib от 2009 года (не забываем перебилдить проект)
2. На ПЛК с прошивками от 0.3.43 до 0.3.56 необходимо поменять порядок байт в номере порта (настройки сети сетевых переменных) - пример: 1202=0x04B2 в соотв. поле надо записать 45572=0xB204

RV9WFJ
09.09.2016, 08:10
Владислав, а может вы приложите нужную библиотеку. Я у себя обнаружил только версию 2006 года.
P.S. Я один из тех, кто пытал Вас, как этот обмен реализовать. В итоге уже сделал на ModBus TCP. Но на будущее пригодится.

Филоненко Владислав
09.09.2016, 09:55
На всякий случай выкладываю

Дмитрий25
21.12.2016, 13:28
Доброго здоровья!
Владислав у пользователя RV9WFJ была проблема:
Имею ПЛК110-30.Р.М. [M02] прошивка m02v0.3.53. На чистом контроллере связь GateWay прекрасно устанавливается через TCP. Стоит в проект добавить "ModBus TCP Slave как к контроллеру больше не подключиться из CoDeSys по Ethernet. "
Пожалуйста выложите прошивку 0.3.43. Она должна снять эту проблему. Мне прошивка тоже нужна. Жаль что ее нельзя скачать из ПЛК. Такой ПЛК у меня есть.

приборист
28.12.2016, 19:02
Добрый день!
Пытаюсь считать с флешки серийный номер.
Вроде считывает какие то значения, но что это за значения?
Как их считать на компьютере?

Информация о флешке:
Volume: G:
Controller: SSS 6691 B3
Possible Memory Chip(s):
Toshiba TC58NVG5D2ELA48
Memory Type: MLC
Flash ID: 98D79432 7654
Flash CE: 1
VID: 0951
PID: 1625
Manufacturer: Kingston
Product: DT101 II
Query Vendor ID: Kingston
Query Product ID: DT101 II
Query Product Revision: 1.00
Physical Disk Capacity: 4002910208 Bytes
Windows Disk Capacity: 3994988544 Bytes

ПЛК выдает это:
001CC0EC348C

Серийный номер ПЛК в данный момент возможно как то получить?

Филоненко Владислав
29.12.2016, 08:37
Прочитайте заводские настройки, там есть серийник и многое другое.
У флешек есть поле - серийный номер. это строка, которую заполняет (или не заполняет) производитель.
Что в ней содержится, никак не стандартизовано, к сожалению

Филоненко Владислав
24.01.2017, 10:13
Вышло новое ПО ПЛК110 М02
Версии 0.3.66

Изменения по сравнению с 0.3.64
1. Исправлена возможность перезагрузки ПЛК при работе по UART при нестабильном соединении
2. Поддержан OwenCloud
3. Исправлена работа TCP сокетов через библиотеку SysLibSocket.lib

Мы рекомендуем обязательно обновить ПО 0.3.64 на 0.3.66

Владимир Ситников
24.01.2017, 10:54
3. Исправлена работа TCP сокетов через библиотеку SysLibSocket.lib

А можно более подробно о том, что именно исправлено?

Филоненко Владислав
24.01.2017, 11:38
Очепятку убрали. В результате на 0.3.64 внезапно перестали работать проекты с TCP сокетами

Владимир Ситников
24.01.2017, 11:43
Очепятку убрали.
Это не так интересно. Пользователи всё равно кода не видят.


В результате на 0.3.64 внезапно перестали работать проекты с TCP сокетами
Вот это то, что нужно. Т.е. "на 0.3.64 вообще не работает TCP". Это вполне понятно.

Newcomer
24.01.2017, 12:46
Вышло новое ПО ПЛК110 М02
Версии 0.3.66

Изменения по сравнению с 0.3.64
1. Исправлена возможность перезагрузки ПЛК при работе по UART при нестабильном соединении
2. Поддержан OwenCloud
3. Исправлена работа TCP сокетов через библиотеку SysLibSocket.lib

Мы рекомендуем обязательно обновить ПО 0.3.64 на 0.3.66

В папке PLC110_TI1808_ПО_0.3.66 куча файлов с расширением bin. Мне нужен этот - 110_30_v0.3.66.bin. А что такое, например, этот файл - ubl_AM1808_NAND_ISSI_133MGz.bin и другие ему подобные ?

В файле readme написано - Обязательно используйте таргеты версии 3.12 и выше, если хотите использовать весь функционал М02 ! Где таргеты версии 3.12 ?

Выберите UBL в соответствии с типом модуля и памяти DDR на нём - это с чем есть ?

Неужели трудно приложить краткое описание что к чему ?

capzap
24.01.2017, 12:48
Очепятку убрали. В результате на 0.3.64 внезапно перестали работать проекты с TCP сокетами
на прошивке 2.16.0 в плк100 тоже перестали работать проекты с TCP сокетами
есть какая то связь?

Евгений Багаев
24.01.2017, 13:26
Неужели трудно приложить краткое описание что к чему ?
Описание о способах прошивки есть на сайте (http://www.owen.ru/catalog/programmiruemij_logicheskij_kontroller_oven_plk110/opisanie).
Отдельно прикрепляю его здесь. В нем все эти моменты описаны.

Newcomer
24.01.2017, 13:43
Описание о способах прошивки есть на сайте (http://www.owen.ru/catalog/programmiruemij_logicheskij_kontroller_oven_plk110/opisanie).
Отдельно прикрепляю его здесь. В нем все эти моменты описаны.

А про это что скажите - В папке PLC110_TI1808_ПО_0.3.66 куча файлов с расширением bin. Мне нужен этот - 110_30_v0.3.66.bin. А что такое, например, этот файл - ubl_AM1808_NAND_ISSI_133MGz.bin и другие ему подобные ?

Филоненко Владислав
24.01.2017, 13:44
Это не так интересно. Пользователи всё равно кода не видят.


Вот это то, что нужно. Т.е. "на 0.3.64 вообще не работает TCP". Это вполне понятно.
Не вообще, а только через сокеты не меняя рабочий код

Филоненко Владислав
24.01.2017, 13:45
на прошивке 2.16.0 в плк100 тоже перестали работать проекты с TCP сокетами
есть какая то связь?

проект пришлите, на котором пропала связь. Прошивки не связаны

Евгений Багаев
24.01.2017, 13:46
Newcomer, Вы документ открывали? Там все написано.

Филоненко Владислав
24.01.2017, 13:48
А про это что скажите - В папке PLC110_TI1808_ПО_0.3.66 куча файлов с расширением bin. Мне нужен этот - 110_30_v0.3.66.bin. А что такое, например, этот файл - ubl_AM1808_NAND_ISSI_133MGz.bin и другие ему подобные ?

в readme есть строчка: выберите UBL в соответствии с...
Но рекомендуемый метод - через UpdateCore

приборист
24.01.2017, 15:44
Подскажите в М02 с Modbus.lib нормально работает?

Взял проект из старого ПЛК, пишу в модуль МУ110-16К
Изначально буфер писался как в руководстве:
BufferOut[1]:=WORD_TO_BYTE(MY16K);
BufferOut[0]:=WORD_TO_BYTE(SHR(MY16K,8));
send2_modbus(

При таком раскладе постоянно ошибка err=255.

Затем переделал как в СПК (буфер изменять начал в предыдущем шаге)
Err=0, но в модуль прилетают какие то значения.
Замыкаются выхода 12,13,14,15,16.
При этом переменная не изменяется и равна 0.

До этого все работало через конфигуратор. (Но и прошивка была старая 0.3.62)

Newcomer
24.01.2017, 16:57
После обновления таргета (3.9 на 3.10) и прошивки (0.3.64 на 0.3.66) возникли проблемы с загрузкой программы в ПЛК110-Х.30[М02]. При загрузке программы теряется связь.

Филоненко Владислав
24.01.2017, 17:52
Есть ли проект на ПЛК в момент загрузки?
Интерфейс загрузки?
как обновляли?

Newcomer
24.01.2017, 18:25
Есть ли проект на ПЛК в момент загрузки?
Интерфейс загрузки?
как обновляли?

Еще раз перепрошил и все нормализовалось.

RV9WFJ
25.01.2017, 06:24
После обновления таргета (3.9 на 3.10) и прошивки (0.3.64 на 0.3.66) возникли проблемы с загрузкой программы в ПЛК110-Х.30[М02]. При загрузке программы теряется связь.
Тоже с этим сталкивался, но я назад откатил и все прошло.

Scream
25.01.2017, 08:38
Тоже с этим сталкивался, но я назад откатил и все прошло.

Откатили прошивку или таргет?

capzap
25.01.2017, 09:35
на прошивке 2.16.0 в плк100 тоже перестали работать проекты с TCP сокетами
есть какая то связь?
работает
жалко что не получается следовать инструкции, ожидаемого UpdateCore Ok так и не приходит, вместо этого происходит обрыв связи, узнать что перепрошился можно только после последующего соединения и выполнении команды PLCInfo. Перемычку можно и не убирать, а вот нажать сброс как требуется в инструкции по прошивальщику через сом-порт вроде помогло избавится от постоянных обрывов связи. В работе через бибку сервер рвет соединение если нет обмена данных через семь секунд

Филоненко Владислав
25.01.2017, 09:47
Разрыв соединения при отсутствии по нему обмена - штатный функционал любой реализации сокетов. В ПЛК, т.к. это всё же промавтоматика, а не офисный компьютер, таймаут обмена сильно сокращён (с часов до секунд).
Просто надо что-нибудь посылать - и разрывов не будет.

Для получения UpdateCore Ok увеличьте таймауты в среде разработки

SuP
25.01.2017, 19:08
А targets новые рекомендуемые выложены где-то?
И ещё вопрос - если меняем таргет 3.10 на 3.12, то это повлечёт за собой переписывание конфигурации ПЛК, или там всё останется на месте?

Евгений Багаев
25.01.2017, 19:22
А targets новые рекомендуемые выложены где-то?
И ещё вопрос - если меняем таргет 3.10 на 3.12, то это повлечёт за собой переписывание конфигурации ПЛК, или там всё останется на месте?

На данный момент нет необходимости в обновлении target-файлов. С прошивкой 0.3.66 используйте версию target файла 3.11.
При смене target-файла конфигурация сохранится.

SuP
25.01.2017, 19:35
На данный момент нет необходимости в обновлении target-файлов. С прошивкой 0.3.66 используйте версию target файла 3.11.

Понял, спасибо, но самый свежий target, который я нашёл, 3.10. В выложенном архиве с прошивкой таргетов тоже, вроде бы, нет. 3.10 на 3.11 стоит всё-таки поменять? Дайте на него ссылку, пожалуйста.

Евгений Багаев
25.01.2017, 19:43
3.10 на 3.11 стоит всё-таки поменять? Дайте на него ссылку, пожалуйста.

Поменять стоит. 3.11 скачать можно здесь: http://www.owen.ru/catalog/codesys_v2/73292499

SuP
25.01.2017, 19:46
Спасибо! Будем тестировать...

приборист
26.01.2017, 09:27
Что с батарейками на ПЛК М02?
Уже второй ПЛК с севшей батареей.
Причем изначально лампочка красная не горела, все было нормально.
Затем красная лампочка и время в 2000 год.

А замена батарейки - тот еще акт....:(

Дмитрий Артюховский
01.02.2017, 12:18
Перешился на 0.3.66 - было 0.3.53 Разумеется отлаженные проекты ( с UDP сокетами ) перестали работать ))))
Полчаса матюгов и волшебная палочка найдена:

IF sock_adr_out.sin_addr = (*SysSockHtonl( 16#0A000601 )*) 16#0A000601 THEN

нужно перестать переставлять байты в принятом адресе... так и будем с каждой прошивкой туда - сюда прыгать?

Scream
01.02.2017, 12:24
Перешился на 0.3.66 - было 0.3.53 Разумеется отлаженные проекты ( с UDP сокетами ) перестали работать ))))
Полчаса матюгов и волшебная палочка найдена:

IF sock_adr_out.sin_addr = (*SysSockHtonl( 16#0A000601 )*) 16#0A000601 THEN

нужно перестать переставлять байты в принятом адресе... так и будем с каждой прошивкой туда - сюда прыгать?

Я не понимаю кто делает эти прошивки, в ОВЕН говорят они сами...
КАК они не могут этого знать?

приборист
01.02.2017, 12:39
Я не понимаю кто делает эти прошивки, в ОВЕН говорят они сами...
КАК они не могут этого знать?

Они знают, но не уведомляют.
По принципу - спросят, ответим. Заодно статистику соберем (по аналогии с ШД :))

Филоненко Владислав
01.02.2017, 17:42
Они не перестали работать, а сокеты UDP были приведены к предполагавшемуся 3S Software виду. Немного нестандартному :(

Владимир Ситников
01.02.2017, 17:44
Они не перестали работать, а сокеты UDP были приведены к предполагавшемуся 3S Software виду. Немного нестандартному :(

А кто пользователям-то хотя бы скажет об этом?

И зачем менять то, что раньше работало?
Можно же было сделать новую версию библиотеки (или новую галочку в plc configuration "согласен(а) на новое поведение сокетов"), чтобы старые проекты не ломались?

Филоненко Владислав
01.02.2017, 18:26
Меняли, потому что штатные библиотеки 3s не работали как надо.
к тому же в поведении UDP с 0.3.64 ничего не поменялось

Игоревич
02.02.2017, 17:56
Просмотрел стр. форума с 1 по 55 и с 90 по последнюю. Не нашел ответа на одну хр..нь. Итак: КДС v2.3.9.41, PLC 110-24.P.M (02), Target 3.10, периферия блок Input 8 бит, ПЛК мастер на Modbus (RTU). Создаю целевую функцию, вхожу в конфигуратор ПЛК, включаю Modbus (Master) RS485, подключаю Universal Modbus device, вставляю 8 bit input module, и получаю:
8 bit input module [VAR]
AT %QB6.1.0.0:BYTE;(**) [CHANNEL(Q)]
Т.е., входные сигналы попадают в область выходов!? Звоню в тех. поддержку... Уверяют, что так и должно быть, мол, ускоряется обработка. 20 лет работаю с Сименсом, Омроном и пр., такого не видел. Ладно, пишу простенькую программку:
LD %IX1.0.0 (*вход на ПЛК*)
AND %IX1.0.1 (*вход на ПЛК*)
ST %IX6.1.0.0.2 (*вход на внешнем модуле входов*)
Компилирую. И... все ОК: 0 ошибок, 0 предупреждений. Ладно добавляю:
LD %IX1.0.0 (*вход на ПЛК*)
AND %IX1.0.1 (*вход на ПЛК*)
ST %QX6.1.0.0.2 (*вход на внешнем модуле входов*)

LD %IX1.0.0 (*вход на ПЛК*)
AND %IX1.0.1 (*вход на ПЛК*)
ST %IX1.0.2 (*вход на ПЛК*)
Компилирую.Получаю: Ошибка 4020:Odin(7): Операндом для "ST";"STN";"S";"R" должна быть переменная или прямой адрес, доступные по записи. 1 ошибка, 0 предупреждений. Е.о. КДС не видит, что %QX6.1.0.0.2 входной сигнал. Сразу мысль: у меня в проекте более 60 входов и более 60 выходов. Если я "очепятнусь" и вместо %QX6.2.0.0.2 (выходной сигнал) поставлю %QX6.1.0.0.2 (входной сигнал), то КДС проглотит и не поморщится. Найти сие потом...ой! И еще: как поведет себя вход на модуле входов с 24в на выходе, если я на него подам еще и 24в с контроллера. Есть ли какие-либо мысли по данному поводу. У меня приличный опыт по Сименсу, Овен только однажды пуско-наладил. Сейчас нужно запрограммировть СУ на Овен (времена то тяжелые).

Филоненко Владислав
02.02.2017, 20:38
Ну так зачем же бросать уютный Сименс и переходить на плохой CoDeSYs.
Это разные языки программирования и особенности их надо понять и простить :)

capzap
03.02.2017, 08:41
Если я "очепятнусь" и вместо %QX6.2.0.0.2 (выходной сигнал) поставлю %QX6.1.0.0.2 (входной сигнал)

http://www.kipshop.ru/CoDeSys/steps/owen_plc-configuration.pdf страница 14, рисунок 1.6
и не надо будет этого кода через %

Игоревич
03.02.2017, 10:33
Ну так зачем же бросать уютный Сименс и переходить на плохой CoDeSYs.
Это разные языки программирования и особенности их надо понять и простить :)

Владислав, причем тут CoDeSys? Он все понимает правильно: I - это входной сигнал, Q - это выходной сигнал. А переход на Овен это не от хорошей жизни. Мы тут на "земле" работаем в режиме выживания. Заказчики не воспринимают контроллеры за 2500 - 4500 евро. Да и за отечественного производителя я обеими руками. В Сименсе такие снобы. Я все прекрасно понимаю. Сименс контроллерами занимается с 70-х годов и коллективчик там, как заметил кто-то на форуме, размером со Сколково. Естественно у них все вылизано. Но нарушать общепринятые соглашения... это как-то чересчур. Непонятна сама логика. Входа/выхода самого контроллера распределены как принято, а периферия нет.

Вольд
03.02.2017, 10:42
Работал я как-то с STEP7, исплевался весь. Наворочено там много чего, но все до ужаса заорганизованно. Ни какой свободы. Некоторые моменты там вообще из каменного века. Компиляция проекта длится ужасно долго. То что в CoDeSys компилируется 3 секунды в STEP7 компилируется 3 минуты.

Игоревич
03.02.2017, 10:42
http://www.kipshop.ru/CoDeSys/steps/owen_plc-configuration.pdf страница 14, рисунок 1.6
и не надо будет этого кода через %

Прямую адресацию привел для наглядности. Применение символьных имен переменных картину не меняет. Применение входов в адресном пространстве выходов делает программу понятной только его создателю. В отделе я единственный программист (не идет народ в промышленное программирование). А ехать по первому чиху в Мурманск, Красноярск или в Верхнюю Туру ни возможности ни желания нет.

Филоненко Владислав
03.02.2017, 11:46
Все входа/выхода специально сделаны Q, чтобы можно было включать как подмодули мастера и Slave в modbus slave и иметь к их данным прямой доступ из SCADA верхнего уровня.

P.S. Правилом хорошего тона при написании программ на CoDeSys является не использование прямого доступа к данным в slave и master, т.к. они не являются достоверными по умолчанию. Всегда нужен блок-прокладка с проверкой "а не мусор ли в данных". В нем, для перфекционизма, можно и преобразовать Q в I

Игоревич
03.02.2017, 13:14
Все входа/выхода специально сделаны Q, чтобы можно было включать как подмодули мастера и Slave в modbus slave и иметь к их данным прямой доступ из SCADA верхнего уровня.

P.S. Правилом хорошего тона при написании программ на CoDeSys является не использование прямого доступа к данным в slave и master, т.к. они не являются достоверными по умолчанию. Всегда нужен блок-прокладка с проверкой "а не мусор ли в данных". В нем, для перфекционизма, можно и преобразовать Q в I

Замечательно?! А как же с входами/выходами самого контроллера (используется ПЛК 110-24.60.Р.М (02))?
Прямую адресацию в примере применил умышленно для наглядности и сокращения объема сообщения.
Не достоверность прямого доступа просто пугает! Если на 7-й вход блока расширения приходит сигнал от кнопки "Аварийный стоп" и транслируется в область памяти %IX 6.0.0.0.6, то я должен быть абсолютно уверен, что этот бит и есть сигнал от кнопки "Аварийный стоп", а не что-либо другое.
Присвоение прямому адресу имени не снимает вопрос. CoDeSys все равно видит эту переменную как выход, Назначение такой переменной значения "Входной" не меняет ситуацию, все равно CoDeSys позволяет туда писать (проверено).

Филоненко Владислав
03.02.2017, 14:31
Не путаем собственные входа/выхода ПЛК, где данные достоверны и обмен по сети, где возможна, к примеру, подмена модуля.
Вот о чём речь идёт.
Пришла уставка Ткотла=500 градусов - блок анализа сразу понимает - липа и переводит ПЛК в аварийный режим.

Игоревич
03.02.2017, 15:50
Ну хорошо. Прочитал в руководстве управлением работой программы от внешней SCADA. Понятна логика желаемого. Тогда предложение: можно ли в параметрах модуля ввести дополнительный параметр, например, SCADA. Если Yes, то входа в области выходов, если No, то в области входов. Тогда распределение будет логичнее. Из последних 16 проектов требование выдавать данные во внешнюю SCADA было только дважды.

Филоненко Владислав
03.02.2017, 16:09
60 килоевро 3S software, ещё ххх килоевро программисту для модификации среды разработки CoDeSys под желания клиента и нет ничего невозможного.

Игоревич
03.02.2017, 16:36
А разве это не зависит от Target файла? При конфигурировании ПЛК 110-24.60.Р.М (не 02) этот вопрос не вставал. Распределенная периферия вставала как и положено: входа - в область входов, выхода - в область выходов.

Филоненко Владислав
03.02.2017, 16:43
Если или/или - то таргет, а если кнопочкой - то готовьте евры :)

При конфигурировании ПЛК 110-24.60.Р.М - да, так и было и было очень неудобно.

Игоревич
03.02.2017, 17:02
То есть ради кнопочки было уплачено 60 килоевро 3S Software xxx килоевро программисту (10% проектов), в остальных 90% проектов в пояснительных записках жирным шрифтом пишите "здесь читать, а здесь не читать"? И вся борьба, чтобы Скадники не писали маленький блочек перенаправления данных?

Филоненко Владислав
03.02.2017, 17:37
ну так мы не платили, поэтому волшебной кнопочки у нас нет :) Пользуемся стандартными возможностями среды

Игоревич
03.02.2017, 18:23
Владислав удачи! Пора домой. Я все понял. Будем как-то жить.

_Pavel_
03.04.2017, 09:33
Очень не хватает в [M02] средств для установки идентификатора ПЛК. Дип-переключателя, али джамперов, али ещё чего.. Чтобы можно было использовать одну программу по разному, в зависимости от установки идентификатора.

Aleksandr
22.05.2017, 19:53
Здравствуйте, у меня такая же проблема.

Подскажите в М02 с Modbus.lib нормально работает?

Взял проект из старого ПЛК, пишу в модуль МУ110-16К
Изначально буфер писался как в руководстве:
BufferOut[1]:=WORD_TO_BYTE(MY16K);
BufferOut[0]:=WORD_TO_BYTE(SHR(MY16K,8));
send2_modbus(

При таком раскладе постоянно ошибка err=255.

Затем переделал как в СПК (буфер изменять начал в предыдущем шаге)
Err=0, но в модуль прилетают какие то значения.
Замыкаются выхода 12,13,14,15,16.
При этом переменная не изменяется и равна 0.

До этого все работало через конфигуратор. (Но и прошивка была старая 0.3.62)

Подскажите где копать?

Филоненко Владислав
23.05.2017, 14:57
Очень не хватает в [M02] средств для установки идентификатора ПЛК. Дип-переключателя, али джамперов, али ещё чего.. Чтобы можно было использовать одну программу по разному, в зависимости от установки идентификатора.

Записываем файл и по содержимому файла меняем поведение.
Подключаем тумблер к входам и по состоянию входов меняем поведение.
Список можно продолжать долго. Или Вы хотите ещё DI но под крышечкой в виде DIP?

_Pavel_
24.05.2017, 23:27
Записываем файл и по содержимому файла меняем поведение.
Подключаем тумблер к входам и по состоянию входов меняем поведение.
Список можно продолжать долго. Или Вы хотите ещё DI но под крышечкой в виде DIP?

С файлом плохой вариант, потребует доп манипуляций. Резервировать DI под это - плохо.
И таки да, я хочу DIP под крышечкой в идеале. Наверняка свободные IO на проце остались, которые можно дёшево вывести наружу без развязок и прочего.
Идея такова: на заводе используется несколько однотипных контроллеров в разных местах с различными программами. Даём в ЗИП прошитый контроллер. Обслуживающий персонал может поставить его в любое место не прибегая к перезаливке ПО/файлов, настройки IPадреса и прочее, а только лишь установив перемычку в нужное положение. Да и вообще удобно - единый файл прошивки.

Филоненко Владислав
25.05.2017, 12:03
1.Свободных ножек нет.
2. Закупите 100500 самых дешёвых флешек, записывайте на них некий файл и по наличию файла меняйте поведение программы. Заодно защита от копирования - Без флешки не работает.

_Pavel_
02.12.2017, 19:28
Владислав, подскажите пожалуйста, какое максимальное количество сокетов может быть открыто одновременно в ПЛК 110[M02] ?

Сергей Лысов
03.12.2017, 00:05
подскажите пожалуйста, какое максимальное количество сокетов может быть открыто одновременно в ПЛК 110[M02] ?
В контроллерах М02 до 30 соккетов.

roskmv
23.02.2025, 13:16
C:=C + ((Enc - M) AND 65535);
M:=Enc;

привет всем, а кто может растолковать, может и глупый для кого вопрос покажется, но я не могу понять как это работает "... AND 65535" ?

Валенок
23.02.2025, 23:40
... не могу понять как это работает "... AND 65535" ?
Для начала погуглите как работает AND с булевыми. Говорят что данную информацию уже слили в общий доступ и это можно найти.
Как сдадите зачот по всем 4 правилам, можете переходить к следующей главе - бинарное (двоичное) представление чисел.
Поверьте - без твердого усвоения указанного материала переходить к объяснению как работает "AND 65535" нет никакого смысла.

--
Главный ответ на Ваш вопрос лежит за пределами поста с выхваченными Вами "AND 65535" - в размерности.
Причем неявный ответ на это - именно в том что Вы выхватили. Но это станет очевидным на 2-ом этапе обучения (см. выше)