Как стать автором
Обновить

Комментарии 19

Мда, эпично. 8 лет имею дела с сименсом, но до такого не додумался.
Меня вдохновил цикл статей о яваскрипте, подумал, а чем мы хуже?)
Если посчитать стоимость софта и желаза, то получится самая дорогая змейка в истории)
Надеюсь была использована S7-400H x 2 что бы уж быстро и с избыточностью.
Автор же там написал — S7-300
PS. Ну и зачем змейке Н? :)
НЛО прилетело и опубликовало эту надпись здесь
я их пишу, и очень много… но из-за разности кодировок комменты стали кракозябрами… пишите в личку, расскажу лично, что каждая строчка значит…
Мои коллеги запрограммили для демо на нашем промышленном защитном контроллере Pong :)
Ввод данных — двумя переменными резисторами, подключенными к AI
Вывод — на визуализацию
Вся логика — на FBD
А FBD то и ничем не хуже, в сименсе да, STL просто предоставляет полный доступ ко всем функциям, которые в остальных языках недоступны, но FBD всегда был моим любимчиком в университете, сказывалось увлечение схемотехникой и некоторая похожесть внешнего вида на микросхемы.
А фотографии есть?
Еще у меня в коде есть одна фича — весь просчет идет раз в 2 секунды, пробовал ставить раз в одну, но тогда SCADA не успевала обновляться, есть такое. Получалось, что некоторые кадры проскакивали. Да и в самом сименсе говорили, что она не предназначена для мониторинга быстротекущих процессов.
Теперь интересно попробовать подобное — как будет выглядеть…
Фото чего? :) Посмотрю, если пустят — сфотаю. Не хочу лишних вопросов :)
С визуализацей они, кстати, смухлевали — подключили панель на WinCE с проприетарным софтом от EATON, но данные берут через Modbus TCP, все честно. Преимущество — циклы визуализации намного меньше любого WinCC и иных.
В ненормальное программирование однозначно! :)
Я долго думал, оставить ли его в просто программировании, думал еще в юмор… =)
Интересно, а на чистом LD это как все выглядеть будет. И можно ли будет вообще реализовать.
вызов принят? )
На LD можно реализовать практически любой логический алгоритм, вопрос только, войдет ли программа в память :)
Скорее всего, можно. В следующий раз попробую…
посмотрел.
Генератор пульсов сделан, пожалуй, максимально извращённым способом.
Один раз мне достался объект, который до меня делали итальянцы. Сделали, уехали. Заказчик захотел кое-что изменить, кое-что добавить и т.д. Среди того эпического спагетти-кода был и такой номер. ПИД контроллер вызывали из OB1 по таймеру. В одном нетворке таймер, в следующем вызов ПИД. Первое, что я сделал — перенёс вызов ПИД в OB34.

А теперь переведу на русский. OB1 — это основная программа, исполняется в бесконечном цикле. ПИД надо вызывать строго через одинаковые промежутки времени, а не как попало (как попало произойдёт, если его вызывать из главной программы). Для этого есть циклические прерывания, и одно из них — OB34 — 200 мс.
А итальянцы этого то ли не знали, то ли тупо копировали предыдущие шедевры…

Об итальянском коде тоже придерживаюсь негативного мнения, без бутылки не разберешь. Мне поподалось, что тупо в главном цикле вызывают ПИД, но функции скармливают время последнего цикла. Теоретически ПИД функция может все корректно расчитать зная последний кусок времени. При циклическом вызове просто используется константный параметр, например 100мс, а тут нестандартненько так.

А для обнуления есть такая штука, как SFC21 «FILL»
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории