Easyelectronics.ru

Электроника для всех
Текущее время: 18 ноя 2018, 11:12

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 08:31 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Начало тут: ПЛК (Arduino Mega 2560 + W5100) .

ТЗ для устройства.

Функционал:
0. Назначение: реализация схем автоматизации на основе modbus-rtu и modbus-tcp без компиляции runtime для ПЛК.
1. Старт runtime в течении нескольких секунд.
2. Наличие RTOS для переключения задач.
3. Задачи пользователя пишутся на интерпретируемом C и хранятся на внешней sd-карте.
4. runtime должен поддерживать по возможности бОльшее количество периферии.
5. ModbusRTU и ModbusTCP из коробки. Пользователь пишет только callback'и для них по аналогии с freemodbus.
6. Плата должна быть совместима с Arduino Mega2560 для использования отдельно от runtime.
7. Наличие http сервера.
8. Наличие ftp сервера.
9. Наличие telnet сервера.
10. Поддержка fat32 и длинных имён файлов.
11. На плате должны быть установлены: интерфейс Ethernet (W5500), RTC, графический LCD (опционально), кнопки (опционально).
12. Количество поддерживаемых RS-485: 4 шт (в основном для modbus-rtu, но должна быть возможность управлять из кода пользователя).
13. Работа по всем RS'ам должна быть параллельная или квазипараллельная.
14. Оставшиеся выводы должны быть задействованы для DI, DO, AI, AO.
15. Плата должна иметь возможность после перепрошивки превращаться в: ПЛК, шлюз ModbusTCP в ModbusRTU, универсальный модуль ввода-вывода. Желательно иметь один шаблон платы для всех трёх типов устройств.
16. Наличие JTAG.
17. Отладка интерпретируемого кода пока только через printf.

На текущем этапе я освоил чуть больше половины из программной части всего этого, в т.ч. я запустил первый скрипт на C, который сказал мне: Hello, world!. В качестве платы пока использую Arduino Mega2560 и Proteus. Т.е. я запустил интерпретатор C с 8Кб ОЗУ. На самом деле будет использоваться внешняя SRAM.

Дело подошло к созданию железки и вот тут я решил пообщаться. Покритикуйте затею, посоветуйте чего бы вы хотели, если бы был доступен такой ПЛК.

Смысл всей этой затеи в том, чтобы писать алгоритм автоматизации на относительно дешевой плате, где не нужно думать о программировании периферии. Также не нужно будет думать о реализации modbus, не нужно думать как реализован web-сервер и ftp-сервер, telnet-сервер и так далее. Вы думаете только об алгоритме. Программы пользователя, предполагается, будут иметь своё адресное пространство (банк ОЗУ). Количество программ ограничено и зависит от реализации rtos.

Можете посоветовать схемные решения для внешней ОЗУ, опторазвязки RS-485 для скоростей до 115200, ещё чего-нибудь. Может быть уже есть такая плата (схема), но с другим мк, то я бы посмотрел.

Сразу отвечу на вопросы:

В: Почему avr?
О: Потому-что я его хорошо знаю и умею.

В: Всё равно почему avr, когда stm32, arm, cortex, ...
О: Там я хочу реализовать уже компилятор C, т.к. он более предпочтителен, чем интерпретатор. (Доработать tinycc)

В: Но всё равно, есть же uClinux, Linux, Raspberry...
О: См. п. 1. + есть разница в окружении для кода в виде блокнота и ftp-клиента и виртуальной машины с SDK и прочим (это моя основная работа). Хотелось бы уровня скетчей и армии Arduino пользователей :)

В: httpd, telnetd, ftpd на avr?
О: Конечно, оно уже работает.

В: Интерпретатор C?
О: PicoC.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 09:15 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
А почему именно tinycc? Он создает код под х86, а вы его переделаете под ARM?
Сорри, по основному вашему вопросу трудно что то сказать. Но запустить компилятор на стм32 как мне кажется было бы очень прикольно :)
А нет ли простеньких компиляторов, чтобы сразу выдавали код для ARM?

PS: а эти интерпретатор и компилятор поддерживают отладку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 09:26 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
tcc выдаёт код под arm тоже, я собирал его, но дело в том, что он требует linux-like ОС для своей работы. Я собирал для uClinux. Мне не нужен uClinux, я хочу чтобы он работал в более простой примитивной ОС, для которой не надо десятков мегабайт памяти.

PicoC отладку не поддерживает, но придумать что-то можно, если посмотреть исходники avarice. Что касается tinycc, то там что-то есть встроенное, но как оно работает не ясно. Нужно допиливать видимо.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 10:01 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
Цитата:
Задачи пользователя пишутся на интерпретируемом C и хранятся на внешней sd-карте.

А как они пишутся? Можно ли будет к плате подключиться через веб интерфейс и что то написать, используя отладку? Или даже написать при помощи опционального дисплея?

Цитата:
Программы пользователя, предполагается, будут иметь своё адресное пространство (банк ОЗУ).

Банк озу это имеется в виду часть из доступных 64 к памяти? Или, возможно, будет несколько банков по 64 к?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 10:12 
Старожил

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 983
Цитата:
опторазвязки RS-485 для скоростей до 115200
до 500килобит у ADM2587E со встроенной развязкой и DC-DC у китайцев за 0.92 трампов за шт. Защита по ESD до 15 кВ по дифф. I/O есть.

Цитата:
ещё чего-нибудь
включить драйвер можно по стандарту J1708:
Изображение
https://www.kvaser.com/about-can/can-standards/j1708/

Цитата:
Также не нужно будет думать о реализации modbus
https://github.com/smarmengol/Modbus-Master-Slave-for-Arduino

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 10:19 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
уни писал(а):
tcc выдаёт код под arm тоже, я собирал его, но дело в том, что он требует linux-like ОС для своей работы.

А почему так сделано? Что ему нужно от ОС?

Блин, интерпретатор получается что просто, но не интересно :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 10:51 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Спасибо за схемы и ссылки.

Что касается банков ОЗУ, то я планирую подправить переключатель ОС для того, чтобы использовались разные банки для разных задач. Можно поставить 512 Кб внешнего ОЗУ и при переключении на задачу менять банк. В качестве ОС я пока использую scmRTOS, но там есть ограничение - выделяемая память для задачи задаётся на этапе компиляции жестко. При 512 Кб можно получить 8 задач по 64 К (на самом деле меньше), например. Или 16 по 32 Кб.

Как пишутся:

Пишешь, например, в Visual Studio на C. Потом, используя cmd (прямо из студии) заливаешь по ftp на устройство. Можно и через web, но пока смысла особо не вижу. При помощи web можно загружать любой файл на sd-карту, не обязательно программу.

Отладка для интерпретатора не поддерживается, т.е. приостановить скрипт при помощи чего-то нельзя (хотя теоретически возможно).

Как я планирую отлаживать.

Вариант 1. Через web. Вы можете получить список и значения всех глобальных переменных скрипта в текущий момент времени (имя переменной, тип и кусок памяти байтами - значение).
Вариант 2. Используя modbus-rtu или tcp и внешней программы, которая может отображать значения modbus регистров и строить графики. Я использую ibaPDA (ломанную), но могу написать и свою (она уже есть, но не доделана).
Вариант 3. Все 4 порта будут заняты под RS'ы. Отладочная информация будет доступна через softUART. Из скрипта можно выводить значения, используя printf. Я сейчас так делаю на Arduino Mega2560.

Что касается modbus, то я переделываю код отсюда.

Цитата:
А почему так сделано? Что ему нужно от ОС?

Это нужно, например, чтобы ссылаться на код ОС, когда работаешь с функциями из ОС: файлы, потоки и т.д. Кстати, в picoc тоже самое, но я эту всю часть повыкидывал и планирую заменить на своё (работу с файлами, к примеру). Для tcc можно также, думается, сделать обрезание и заменить на своё.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 13:50 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
При создании нового ПЛК надо для начала определить места его возможного применения,
в результате чего может потребоваться дополнительный набор встроенной или внешней периферии.
Для чего ему Модбус ?
Распределённая периферия ввода/вывода будет на STM32 ? :)
http://we.easyelectronics.ru/GYUR22/modbus-modul-diskretnyh-vhodov-vyhodov.html
отсюда вопрос ? Смысл делать ПЛК на 8-ми битном АВР, если простую периферию делают на 32-х разрядных дешёвых процессорах ?

а сколько это чудо будет стоить ? 2...3...5 баксов ? Или 100...200...300 ?
Изображение
самый простой ПЛК Сименса S7-1211C стоит 160 евро... S7-1212 220 евро
ПО бесплатно

По аппаратной части - пример Zelio от Шнайдера на АВР
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 14:52 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Сколько это будет стоить можно оценить, если собрать комплект на основе Arduino: Arduino Mega2560, External SRAM Shield 512KB, Ethernet Shield (W5500), 4 драйвера RS-485 с опторазвязкой, ИБП (если 220), RTC, оптроны, транзисторы, реле по количеству DI, DO. Это минимальный набор. Отличие будет в том, что у меня на борту всё будет сразу.

Мне не нужны сименсы и всё что с ними связано. Я как-то работал автоматчиком на заводе, где обслуживал 400 серию. Нафик надо. Мне нужно штук 10 своих ПЛК, а не одну. Я хочу дома что-то автоматизировать и иметь возможность это всё сделать из подручных средств. У нас на заводе было всего два ноута, которые могли на месте дебажить код, т.к. плату отладочную нужно специально отдельно заказывать. Не знаю как сейчас, но общая тенденция у них у всех - монетизировать всё, что только можно, любую железную хрень. Если у тебя деньги никто не считает, то да... почему бы и не сименс или какой другой codesys.
Сейчас, к примеру, я пишу код на объектно-ориентированном ST для CoDeSys (1 апреля 2017 стандарт введён у нас в России, кстати). Скажу, что стало гораздо лучше, чем было лет 10 назад. Но мне нужно 10 контроллеров и чтобы много входов выходов, и чтобы куча rs-ов и ethernet и всё такое прочее (см. перечень выше). Сколько это будет стоить? Думается мне, что мой вариант будет при любом раскладе дешевле любого промышленного. По функционалу хуже, но мне интерпретируемых C программ вполне достаточно.

Ещё есть такой вариант - использовать OpenPLC совместно с моей платой. Автор там на форуме писал, что вряд ли возможно, но я хочу попробовать всё-таки. Тогда будет только железка, а софт бесплатный.

> Для чего ему Модбус ?
Его я знаю вдоль и поперёк потому что, у меня есть исходники и куча внешнего ПО для анализа трафика протокола. Он этим удобен. Можно добавить любой другой, если есть исходники и так далее.

По поводу STM32 и прочих arm'ов. У меня нет такого же комплекта исходников для arm'а, какое есть для avr. Я бы не против, тем более отладчик там человеческий, но мне нужна такая же дешевая плата и трюки с ОЗУ, чтобы я мог выполнять задачи каждую в своём адресном пространстве. Есть ещё одна вещь. Я сомневаюсь, что смогу так же просто сопровождать код на arm'е.

Никто вам не мешает сделать всё то же для arm'а. Исходник интерпретатора я указал, он там соберётся на раз.

Вообще, на основной работе я пишу программы для автоматизации. Делаю это на разных языках и в разных системах. Меня это утомило. Нужно знать очень много, чтобы заставить что-то действительно работать. Вы покажите степок простому смертному или IDE CoDeSys, или GX Works. Я хочу старого доброго C для себя.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 15:26 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3996
нифига не понятен смысл танцев с си.
плк потому и плк, что там нет си и его возможностей прострелить ногу.
если хочется дешево и писать на си, но без железа - берется любой дешевый жирненький стм32, пишется один раз фреймворк и потом в нем свой алгоритм. быстро, просто, дешево, без извращений. как на ардуине:) для себя - в самый раз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 15:30 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5169
Ink, тогда весь "колоссальный" опыт и все "наработки" АФФтора идут лесом .
АбЫдна , да??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 15:57 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Цитата:
плк потому и плк, что там нет си и его возможностей прострелить ногу.

Это откуда интересно следует? Может опыт есть? Вот код из реальной программы автоматизации на CoDeSys ST:

Код:
// ---[ Линия RS-485-1. Модуль МВВ1 ]---
// [DI] Дискретные входы.
// [М1.2:X21.2] Пожарная сигнализация.
pTag := _tags.GetInput( 'Пожарн.сигн.' );

if pTag <> nullptr then Fire := pTag^.AsBool; end_if


// [М1.2:X22.1] Давление на входе сетевого насоса 1 < min.
pTag := _tags.GetInput( 'Pвх сн1 < min' );

if pTag <> nullptr then spump1.PinLow := pTag^.AsBool; end_if


Вы явно не в теме.

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

Может и пример покажите?

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 16:08 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Цитата:
Вы покажите степок простому смертному или IDE CoDeSys
всё время показываю... у кого то от программного RS-триггера и реального на ТМ2 сносит голову
Изображение Изображение
Цитата:
Я как-то работал автоматчиком на заводе. Нафик надо. Мне нужно штук 10 своих ПЛК, а не одну.
надо избавляться от накопленных страхов и боязней

я так понимаю проект ориентирован на извлечение материальной выгоды
по цене выливается в тот же S7-1200 (у которого Эзернет (с поддержкой Модбус) в поставке, но доп.модуль RS485 подороже), сбоку можно прилеплять дополнительные модули ввода/вывода и коммуникаций...
у стандартных решений есть преимущество в виде независимости от задумок сопровождающего проект стартёра, и стандартное изделие может сопровождать любая кухарка, имеющая опыт работы с мясорубками :)
Изображение
Цитата:
Цитата:
плк потому и плк, что там нет си и его возможностей прострелить ногу.
Вы явно не в теме.
Они оба считают, что ПЛК всё делает сам... и программу сам пишет и сам же её выполняет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 16:30 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
petrplc, когда я работал автоматчиком, то уже тогда думал, а не применить бы мне чего дома... ну его нафик. Мне интересно, неужели среда разработки, отладчики у Сименса и пр. всё стало бесплатным? У нас на заводе был купленный степок, на полке стоял, но мы все пользовались только ломаным. Страшно вспомнить про анализаторы полевые, ibaPDA, PLC Analyzer. Всё ломанное и разряда фиг где достанешь, а премию за простои снимают со всего цеха и ты виноватый, ибо автоматчик должен знать всё. Я ничего не говорю, когда это всё лицензионное, то красота, но не для простых смертных.

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

Если у меня получится настроить OpenPLC - то же самое. Заработок на услугах, а процесс сборки runtime я могу описать. Жду ответа от автора проекта. Насколько я понял, редактор превращает код МЭК в набор си исходников и у него не получилось их собрать для avr. Это потому, как мне думается, что у него не было платы с внешней ОЗУ. Ничего не мешает любому описать процесс сборки для arm'а и иметь бесплатный софт и свою железку. Проект сыроват, но любителям МЭК языков наверное пришёлся бы по душе. Мне они не нравятся.

Цитата:
всё время показываю... у кого то от программного RS-триггера и реального на ТМ2 сносит голову

Господи, как CoDeSys смотрится древним... я пользуюсь 3.5.10.20 (последней на текущей момент версией). Визуализация хороша, это если с чем-то сравнивать. Например, я писал проекты HMI на EasyBuilder Pro для панелей оператора Weintek. CoDeSys - небо, Weintek - ад. Но всё это бабло, бабло... что касается панелей оператора, если мне будет нужно можно использовать дешевые китайские панели с WinCE7, которые можно программировать на .Net Compact. Не так удобно, зато доступна вся мощь .Net. "Скрипты" можно на C# писать.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 17:30 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
По поводу стоимости железа, к примеру, текущее железо, на котором я ставлю эксперименты обошлось в 370 р + 390 р. ~= 800 р. На этом мне можно было бы и закончить, если бы не понадобился интерпретатор и промышленное исполнение. За 800 р у меня есть и ftp сервер, и web-сервер, и карточка и куча голых входов/выходов. Только я не хочу каждый раз пересобирать прошивку. Кого-то это устраивает, а мне охота иметь уже готовый всегда известный функционал с одной прошивкой. Я хочу думать только об алгоритме, имея библиотеки поддержки для всего остального. Хочу, чтобы для работы достаточно было блокнота++ и ftp клиента. Это очень большая разница.

Ах, да, ещё sd-карта. Тут уж прибавьте стоимость от размера.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 17:50 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Цитата:
Мне интересно, неужели среда разработки, отладчики у Сименса и пр. всё стало бесплатным? У нас на заводе был купленный степок, на полке стоял, но мы все пользовались только ломаным.
Программное обеспечение Лого! и Портал Васька условно бесплатны в России...
Sim_EKB_Install не ломает ничего, как до него не ломал Siemens.exe :)
Все возникающие ошибки есть ошибки самого фирменного программного обеспечения.

"Умный дом" пока никому толком не удалось реализовать, так как под умностью каждый понимает решение своих текущих проблем (типа сигнализации, что мол на полу вода...)
Цитата:
По поводу стоимости железа, к примеру, текущее железо, на котором я ставлю эксперименты обошлось в 370 р + 390 р. ~= 800 р.
к примеру, текущее железо, на котором я ставлю эксперименты ... тысяч 10 евро... (простенькие процессоры 200...500е, модули ввода/вывода и датчики/периферия от 50 до 1000, 7-ти дюймовая панелька 1 т.евро,... ,старенькая за 3,5 отдыхает на диване, смартофон с вафлей для связи с ПЛК) ...это настольный макетик...
я не "пальцы кручу", а показываю с чем можно работать и может бы очень завышенную цену этого можно снизить на порядок при той же функциональности и надёжности... это если есть желание "осчастливить мир" , а не делать из этого средство безбедного существования.
Поэтому несколько критично отношусь к выбору 8-ми битной АВР в качестве центрального управлятора чем то грандиозно-необъятным типа "Умного дома".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 18:11 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Я мог бы взять ПЛК с али, где есть клоны Siemens и Mitsubishi ранних моделей. Клоны Сименса я не пробовал, а вот аналоги FX2N от Mitsubishi попробовал (Wecon LX3V). Что я могу сказать на этот счёт. Клоны дешевле во много раз. LX3V может даже работать (прошиваться) оригинальной IDE GXWorks2. Я писал код на ST для клона и он работал, хотя оригинальная IDE от китайцев ST не поддерживает. Что мы имеем: ПЛК по стоимости с доставкой для 16DI+16DO, 1 RS со встроенным modbus (slave и master) и около 16 тыс "шагов" (имеется в виду команд IL) - 11-12 т.р. Причём не сегодня-завтра, недокументированную IDE прикроют (GX Works2 работает полноценно 60 дней, потом её надо сбрасывать в реестре). Этот ПЛК как раз STM32 чип использует, не помню какой.

Надо оно мне за 11-12 т.р. хоть и промышленное, но такое убогое. 1 RS (!), на самом деле их там два, но один из них для удалённого программирования. т.е. не доступен из программы ПЛК.

А если мне надо 10 шт? Ахтунг. Одно только освещение у меня в квартире требует такого количество точек (32). А где web-интерфейс или ftp, или telnet?

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

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 18:39 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3996
уни писал(а):
Это откуда интересно следует? Может опыт есть?
Нет, я просто так сюда попи*деть пришел. я не petrplc. да у меня есть опыт, за те 7 лет, что я работал в автоматизации, я успел поработать с более чем тремя совершенно разными плк и внедрить не один десяток разных установок.
уни писал(а):
Вы явно не в теме.
или ты? откуда дровишки, что я не в теме?
речь шла про си и его возможность прострелить ногу, ты показываешь код паскаля. причем, я уверен, это недопаскаль. там нельзя прогать как на обычном паскале или си, например, зависнуть, ожидая сигнал. и еще 100500 ограничений. потому что это ПЛК, весь его смысл не дать прострелить себе ногу. или что, кодесис позволяет убить контроллер, например, записав через указатель чужую память?
уни писал(а):
Может и пример покажите?
я его уже показал. все что ты описываешь в хотелках есть в ардуине. даже платформа та же. хочется пожирнее - берешь ардуину на есп8266. хочется арм - сам корячишь минимально необходимый фреймворк.
единственное различие с твоими хотелками - прошивка. ты не хочешь шить "окружение". но какая нафиг разница по большому счету? разработка (и надежность) софта проще, когда компилишь все за раз и без лишних сущностей. а заливать можешь и так как угодно, как в бутлоадере сделаешь.
так нахрена там интерпретатор си?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 19:01 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Цитата:
Надо оно мне за 11-12 т.р. хоть и промышленное, но такое убогое. 1 RS (!)
Одно только освещение у меня в квартире требует такого количество точек (32)
Управление 32-мя лампочками? В каждый патрон по Модбусу RS485 с тиристором ?
Цитата:
А где web-интерфейс или ftp, или telnet?
Оранжевый Пи за 500 р. ?
Изображение

Цитата:
потому что это ПЛК, весь его смысл не дать прострелить себе ногу
ну теперь всё ясно - очередной любитель пострелять себе в ноги и другие части тела.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 20:40 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Цитата:
Управление 32-мя лампочками? В каждый патрон по Модбусу RS485 с тиристором ?

Да не :) Представим, что у меня есть 6 зон освещения (комнаты, прихожая, лоджия и т.д.) В каждой зоне по два типа освещения: основное и точечное. Получаем 12 объектов управления. При этом это не лампочка отдельная, а "гирлянда" из диммируемых сберегалок или светодиодная для точечных светильников. Ещё 4 канала можно оставить для резерва. Так вот, я хочу использовать внешние диммеры. Это нужно для параллельной работы традиционной схемы квартиры с автоматизированной, т.е. я могу выключить ПЛК и всё будет работать "как раньше". При таком способе нужно знать текущую яркость, которую выставляет диммер. Для этого нужно 12 дискретных входов + 4 запасных. Поэтому и получается 24 + 8. Точки - это сумма DI + DO.

Цитата:
Оранжевый Пи за 500 р. ?

Ага, и стартует он через сколько времени? У меня есть Raspberry, но это комп, который приходит к готовности фиг знает когда после перезагрузки. А я хочу не только квартиру автоматизировать.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 20:52 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Ink, ты устарел. CoDeSys контроллер не убьёт, но убьётся всё железо от него зависящее, когда runtime вывалится в OC с SEGFAULT. Это элементарно сделать в CoDeSys, т.к. этот "недопаскаль" поддерживает указатели, динамическую память и ООП. Даже если ты её не выделяешь, элементарная путаница с объектами в памяти, на которые указывает указатель приводит к вываливанию runtime. Все драйвера в CoDeSys работают с указателями (они на ST написаны).

О некоторых возможностях ST в CoDeSys: OOP in IEC 61131-3 for experts (pdf).

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 21:00 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3996
petrplc писал(а):
ну теперь всё ясно - очередной любитель пострелять себе в ноги и другие части тела.
тебе всегда все ясно, но что-то при тыканьи пальцем в небо ты всегда попадаешь в жопу.
это не я любитель пострелять, а скорее такие как ты, которым сложно писать код и понимать его. а если серьезно, таких программеров подавляющее большинство, и даже сильно опытные допускают ошибки. и если нудить, то и ЯВУ "улучшаются" как раз с той же целью (в т.ч.) - давать меньше возможностей программисту ошибиться. создатели концепции ПЛК - это прекрасно понимали, в отличие от.
уни писал(а):
Ага, и стартует он через сколько времени? У меня есть Raspberry, но это комп, который приходит к готовности фиг знает когда после перезагрузки. А я хочу не только квартиру автоматизировать.
скажем так, стартуют они за известное время, которое можно измерить и оно будет примерно постоянным. устроит ли оно - вот только в чем вопрос.
и даже в промышленных плк был бутлоадер, который загружал ... дос! это тоже отнимает время. однако это не мешало им трудиться на производстве. а про изаграф надо рассказать, который работал под qnx/linux? они тоже "приходили к готовности фиг знает когда";) и никому вроде не мешало:)
уни писал(а):
Ink, ты устарел.
принимается. да я устарел, до кодесис в свое время у нас не дошло. ну и очень стремно, что он позволяет убиться программе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 21:05 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Цитата:
единственное различие с твоими хотелками - прошивка. ты не хочешь шить "окружение". но какая нафиг разница по большому счету? разработка (и надежность) софта проще, когда компилишь все за раз и без лишних сущностей. а заливать можешь и так как угодно, как в бутлоадере сделаешь.
так нахрена там интерпретатор си?

Нахрена, нахрена... Разница в том, что я могу поменять скрипт и поведение системы изменится кардинально. К примеру, я хочу сделать запуск чего-то по расписанию. При традиционном способе мне нужно придумать универсальный формат для расписания и он будет "неизменяемый" для конкретной прошивки. Исходники куда-то сохранили... шли годы, заказчик попросил добавить ещё один пункт в формат.... достаём исходники всего... а они не компилируются под Windows 10 :) или ещё фиг знает по какой причине. Зачем тащить за собой окружение? Это ещё и повышенные требования к сопровождению кода.
Я могу даже код скрипта отдать спокойно заказчику, если ему надо, т.к. ему компилировать его не нужно. В традиционном подходе такое маловероятно, т.к. нужно КБ, чтобы код поддерживать.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 21:26 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3996
я все равно не понимаю. ну вот сделаешь ты time.c, какая разница, выполнит его интерпретатор или это будет нативная вкомпиленная функция? захотел поменять - в обоих случаях поменял один файлик и всё. яхз почему какие-то универсальные форматы только в одном из вариантов.
далее. хранение исходников - это не задача плк%) если не освоен свн или гит - надо просто освоить и больше не будет такой проблемы. давно можно не накладно одновременно развивать несколько веток.
ну а на счет устаревания тулчейнов... от этого никуда не деться в любом случае. если заниматься поддержкой этой вашей плк, то так и так вы ее будете пересобирать, а за 5 лет поддержки точно смените версию компилятора. скорее всего переделаете ядро, пусть не сильно. запросто старые интерпретируемые скрипты окажутся не совместимыми (апи поменяете, для удобства). так что если поддержка будет (а без нее никому оно и не надо;)), вы в любом случае будете решать эти проблемы. так что в этом плане выгода надумана.

опять же, возвращаясь к плк, например, изаграф распространялся в объектниках. можно было добавить туда своего системного си кода и юзать его из изаграфа. да, надо скомплить 1 раз, но это ерунда и вряд ли кого пугало, что на вин10 когда-то оно не скомпилится:)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega2560 совместимый)
СообщениеДобавлено: 06 апр 2017, 21:49 
Старожил
Аватара пользователя

Зарегистрирован: 14 фев 2012, 19:11
Сообщения: 326
Откуда: Энергодар, Нижневартовск, Екатеринбург
Цитата:
я все равно не понимаю. ну вот сделаешь ты time.c, какая разница, выполнит его интерпретатор или это будет нативная вкомпиленная функция? захотел поменять - в обоих случаях поменял один файлик и всё. яхз почему какие-то универсальные форматы только в одном из вариантов.

Чтобы поменять time.c ты должен взять какой-нить IAR версии той, что была при сборке. Полечить его (надо полагать), быть уверенным, что все галки сохранились в проекте и всякие пост и пре билды имеются и работают с путями в ОС, которые тоже на месте и т.д. Сферический проект в вакууме наверное ничего этого не имеет, но у нас (на работе) не так просто всё настроить, чтобы заработало. Если взять гнутые утилиты, то там всё страшнее даже, т.к. там всё консольное и ты должен разрешить все зависимости, чтобы make у тебя сработал. У нас, к примеру, никто не разрешит собрать прошивку и прошить её в реальное железо простому программеру, т.к. никто не даст гарантии, что система "осталась той же" после правки исходников. Один бит не такой в runtime и каюк может наступить, а кто-то будет отвечать :) Одно дело отвечать за скрипт, а другое - за runtime. Вообще, после компиляции runtime должны быть проведены все проверки на совместимость его с железом. Поэтому я и говорю, что так просто time.c не поменять, т.к. ты должен протестировать всё в комплексе. Вот почему я говорил о большой разнице.

Вот это всё реально нужно программеру знать. Либо я его попрошу ознакомится с новой версией интерфейса к библиотеке функций.

Я писал под ISaGRAF ... нет слов, чтобы это описать. Эта их среда дебильная самописная меня нервировала. У нас была однопоточная версия лицензирована. Чтоб я его больше не видел ни в жизнь.

В общем, ответ на ваш вопрос прост. Почему CoDeSys'ы и прочие ISaGRAF'ы не распространяются в исходниках для полной сборки так сказать? Если вопрос денег опустить? Этот тот же "интерпретатор" в виде компилятора уже для ST и пр. Плюс, там решаются вопросы переключения задач и некоторые другие специфические. Проще народу программировать? Конечно проще, сам знаю, так как писал систему автоматизации на C++, которая делала всё то же самое. Многие вопросы отпадают, типа реализации многопоточности.

Я же не только интерпретацию хочу, но и некоторые другие вещи сделать, о которых писал в списке ТЗ. Я хочу приблизить скрипты к форме МЭК задач. Кстати, быстродействие надо проверить, джиттер и т.д.

_________________
git.io/vOZo0


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB