Шоб его почаще изобретать :). А остальные инструменты вы уже освоили?
Вид для печати
Ещё раз повторяю, М02 уже 2-ю неделю продаются. Все модификации. Пинайте дилеров.
Отличие от М01 - лазерная маркировка.
Web сервер с SVG графикой и вводом/выводом значений напрямую в переменные CoDeSys практически 1 кликом мыши существует на наших ПЛК с 2005 года.
3-й Кодесис мы рассматриваем, но это другие цены, всё же. А выгода - только редактор удобный, ИМХО.
Владислав, а что это за опция такая: "SOCK_NBIO"?
Нету такой:
(* Socket options *)
SOCKET_SO_DEBUG:DINT:=16#0001; (* turn on debugging info recording *)
SOCKET_SO_ACCEPTCONN:DINT:=16#0002; (* socket has had listen() *)
SOCKET_SO_REUSEADDR:DINT:=16#0004; (* allow local address reuse *)
SOCKET_SO_KEEPALIVE:DINT:=16#0008; (* keep connections alive *)
SOCKET_SO_DONTROUTE:DINT:=16#0010; (* just use interface addresses *)
SOCKET_SO_BROADCAST:DINT:=16#0020; (* permit sending of broadcast msgs *)
SOCKET_SO_USELOOPBACK:DINT:=16#0040; (* bypass hardware when possible *)
SOCKET_SO_LINGER:DINT:=16#0080; (* linger on close if data present *)
SOCKET_SO_OOBINLINE:DINT:=16#0100; (* leave received OOB data in line *)
SOCKET_SO_REUSEPORT:DINT:=16#0200; (* allow local address & port reuse *)
SOCKET_SO_SNDBUF:DINT:=16#1001; (* send buffer size *)
SOCKET_SO_RCVBUF:DINT:= 16#1002; (* receive buffer size *)
SOCKET_SO_SNDLOWAT:DINT:=16#1003; (* send low-water mark *)
SOCKET_SO_RCVLOWAT:DINT:=16#1004; (* receive low-water mark *)
SOCKET_SO_SNDTIMEO:DINT:=16#1005; (* send timeout *)
SOCKET_SO_RCVTIMEO:DINT:=16#1006; (* receive timeout *)
SOCKET_SO_ERROR:DINT:=16#1007; (* get error status and clear *)
SOCKET_SO_TYPE:DINT:=16#1008; (* get socket type *)
SOCKET_SO_PROTOTYPE:DINT:=16#1009; (* get/set protocol type *)
(* TCPIP socket options *)
SOCKET_TCP_NODELAY:DINT:=16#01; (* don't delay send to coalesce packets *)
SOCKET_TCP_MAXSEG:DINT:=16#02; (* set maximum segment size *)
SOCK_NBIO:DWORD:=16#1014;
Владислав, выложите пожалуйста ПО последней версии.
У меня сейчас:
PLC model MODEL PLC 110-30
Binary VERSION 0.3.42
Need Target version >= 3.07
Compiled: 17:08:03 Aug 24 2015
STM32 binary version 114
MAC 6A:77:00:FF:FF:55
... и соответственно опция не работает.
Выкладываю 0.3.43
Спасибо, работает!
Прошился через CDS, UpdateCore - все хорошо.
Вобщем, кто использует сокеты в ПЛК110 нью обновляться до 3.43 обязательно!
Как воспользоваться TFTP сервером на ПЛК "из коробки"?
Любым TFTP клиентом заходите. стандартный, 20-й порт, ЕМНИП. Доступ чтение/запись только к содержимому RAM-диска (префикс ram: ). Доступ к другим дискам запрещён в целях защиты от несанкционированного доступа.
Попробовал. Вроде работает. Порт: 69. Префикс ram~.
Как уже и говорилось - есть небольшой временной разрыв между ощущением ведущего программиста, что он закончил работу над прибором, и сроком, когда приборы могут выйти из серийного производства и лечь на склад.
А команда проекта настолько расстроена предыдущим количеством срывов сроков, что не спешит с открытыми заявлениями.
По полученным мной данным - ПЛК110-М02 должны появиться в продаже либо в конце этого года, либо сразу в начале следующего.
Владислав, а нельзя ли сделать так чтобы сокеты на [М01] работали аналогично? Там дело только в прошивке или есть какие-нибудь аппаратные изменения в этом плане?
(Иначе разные версии проекта придётся держать..)
По поводу Codesys 3, честно говоря я не понял выше озвученной позиции. Все Ваши СПК и ПЛК 3xx работают на v3, и разнице в цене я что то не заметил. Я лично, знаю несколько фирм которые выпускают один и тот же ПЛК сразу на двух версиях и разнице в цене там так же нет. В v3 есть множество вещей которых просто нет во втором.Codesys v2. 3S мало того, что уже не развивает старую версию, но и снимает её с продаж в конце 2016 (есть письмо на их сайте). На вашем собственном сайте, до сих пор висит, что появление M02 с версией CODESYS 3 планируется в 2015. А тут оказывается, что только "рассматриваете". С 2013 мы ждали появление М02 с нормальной частотой процессора. Сколько лет, если не секрет, теперь нужно подождать от рассмотрения до реализации М02 на CODESYS v3 ?
И какой
Если 3S снимет с продажи Codesys v2, то фирма "ОВЕН" не будет покупать у немцев лицензионные марки и все дела. ;) Codesys v2 как была, так и останется.
))))))))))))))
Позитивный Вольд - это прикольно.
Хорошо бы, но от немцев такого не дождешься :)
На самом деле прекращается продажа Runtime систем для новых аппаратных платформ ПЛК.
И, естественно, эволюционным путем все мы перейдем на CDS3.
Но не так это просто и дешево как хотелось бы.
Ну вы САМИ несколько лет даете рекламу ПЛК110 с CDS3, плюс САМИ давали информацию на сайте и т.д.- никто как говорится за язык не тянул.
Теперь спрашиваете - зачем вам CDS3?
Раздвоение личности или что-то ещё?
Вы хоть один проект CDS3 открывали? Если PLCConfiguration там называется немного иначе - оно там есть. И технология не изменилась :)
ООП - Ни разу не видел проект с его использованием не для красоты. Мифы ООП сильно преувеличивают его пользу.
3-й Кодесис нами используется для ПЛК с визуализацией как потенциально хорошо расширяемая вещь и 3S в последних патчах наконец стала делать разные вещи под визуализацию. Потенциал там заложен хороший. + web.
А вот для контроллеров управления не очевидны преимущества, т.к. 3-й несколько тормознутее.
я как то на форуме высказывал мнение о не нужности ООП, но используя эту технологию проекты делал, чтоб доказать себе самому что толку мало. Могу признать, что через некоторое время работы в ООП, ощущение меняется на противоположное, в пользу ООП.
Последний год пишу только на CS3. И обхожусь без PLC Configuration в CS3, чего в CS2 сделать проблематично. Ваши аргументы давно известны, но жизнь подсказывает другое. На вашем месте я бы больше прислушивался к мнению интеграторов с опытом. Очень неудобно когда в проекте используются и СПК и ПЛК110.
Что касается ООП то он вообще не нужен если проект один. А если у тебя одно и тоже практически без изменений копируется из проекта в проект с мелкими правками - вот тут то и нужен ООП. Выбирайте сами на кого вы ставите - на тех кто случайно один проект напишет потому что начальство денег на интеграторов зажало, или на тех кто каждый день этим занимается.
Да и вообще что мы тут обсуждаем - вы же сами написали что в ПЛК110 будет CS3. Не написали бы, не было бы этого разговора.
вот это то как раз не принципиально, с помощью ООП или по старинке. Наоборот когда проекты сильно отличаются, но есть какие то общие моменты, например обмен данными по сети, работа с файлами, добавил уже готовую реализацию через EXTENDS и IMPEMENTS.
Повторюсь, всё тоже самое можно сделать через функции и ФБ, всё зависит от того кто на чем долго работает, тот и будет хвалить свой способ, главное имеется возможность
Здравствуйте.
Форум на то и форум, что каждый, в том числе и сотрудник Овен, может высказать своё мнение. Официальная позиция компании формируется на ваших, как пользователях, потребностях. Сейчас такая потребность видна, поэтому в планах Овен есть разработка ПЛК на базе CDS3.
Спасибо Филоненко Владиславу, за содержательный диспут по поводу преимущества CODESYS v2. По поводу быстродействия: контроллер Berghof EC1000 (400 мгц) У меня есть две версии на v2 и v3. При отключенной WEB визуализации, показывает большее быстродействие на CODESYS 3. Контроллер Wago PFC200 (600 мгц), последняя прошивка позволяет переключать v2 и v3. При отключенной WEB, также показывает увеличение быстродействия на v3. Естественно сравнивалось на одном проекте, конвертированном в CODESYS 3. Если нет прошивки для ПЛК110 на CODESYS 3, мне интересно откуда взялось утверждение, что на CODESYS v2 он работает быстрее? Про WEB визуализацию, я вообще молчу. В CODESYS 3 гораздо удобней работать с сетями (даже если использовать конфигурационные библиотеки Овен). Кто не использовал пока объектно-ориентированное программирование в CODESYS 3, наверное не сможет понять его преимуществ. Для начала хорошо бы прочесть статью http://www.codesys.ru/art7.
http://www.codesys.ru/art7
Прекрасный по полноте и бессмысленности пример.
Если не заметили, там всё в режиме симуляции.
А в реальности эти лампочки, комнаты и т.п. связываются с реальным оборудованием, как I/O контроллера, так и I/O на модулях расширения и других ПЛК.
И вот тут то и кроется лопата. В красивый абстрактный класс лампочки грязными лапами вступает действительность.
Или мы прикручиваем связь с реальным I/O через указатель ( к примеру), что криво и небезопасно.
Либо в конце прекрасного объектного кода вставляем ну совсем не объектный переход от содержимого всех классов в содержимое I/O.
Или извращаемся с доступом по символьному имени (самый правильный вариант, но тяжёлый...)
Вот если бы объявляя переменную лампочки реально можно было бы выбрать тип "I/O на вот том модуле расширения", но...
my_perfect_var : DIN_FROM_PLC_110_30;
И компилятор сам в конфигурации выделяет 1 вход.
И если надо можно их перетасовать в конфигурации и программа не поменяется.
А в таргете производитель ПЛК помимо всего остального задаёт тип DIN_FROM_PLC_110_30 для дискретных входов ПЛК.
Судя по справке CS (смотрю на справку CS 2.3), Variable Configuration служит как раз для внешней привязки переменных к адресам памяти.
Наверняка же и в CS3 так можно?
Т.е. в программе указываем "тут какой-то вход", "тут какой-то выход". А потом отдельно привязка переменных конкретного блока к реальному ПЛК.
Код:FUNCTION_BLOCK locio
VAR
loci AT %I*: BOOL := TRUE;
loco AT %Q*: BOOL;
END_VAR
..
PROGRAM PLC_PRG
VAR
Hugo: locio;
Otto: locio;
END_VAR
..
VAR_CONFIG
PLC_PRG.Hugo.loci AT %IX1.0 : BOOL;
PLC_PRG.Hugo.loco AT %QX0.0 : BOOL;
PLC_PRG.Otto.loci AT %IX1.0 : BOOL;
PLC_PRG.Otto.loco AT %QX0.3 : BOOL;
END_VAR
AT %X... самый жестокий способ самоубийства. Компилятор не проверяет правильность и возможны серьёзные проблемы со стабильностью, выходом за пределы конфигурации и пр. прелестями.
Уже не один десяток таких программ видел.
P.S. Глобальные переменные (как их не называй) зло. Как только их число превышает десяток и программа чуть забывается (тем более если другой программист немного правит её), вылезают такие баги, что тапок его только щекочет.
Не-не-не, Девид Блейн. У нас будет свой компилятор, с нормальными проверками.
Поэтому и спрашиваю: "как должно быть, если делать по фен-шую".
Инициатива, конечно, хорошая, но даже 2-й CoDeSys это 5-6 человеколет, а 3-й уже к 20-ке подбирается. В одиночку такого не осилить.
А для команды да в разумные сроки нужно 2-3 кк$. И как Вы собираетесь это отбивать?