Так это не я разбирался. Там со стороны Сименса свои специалисты были. Я думаю они то уж должны разбираться в системе, на которой делают проекты.
Повторюсь: у сименса столько всего, что заблудиться можно. Из этого есть неприятные следствия:
1. далеко не каждый, кто делает что-то на сименсе — специалист. Я — тоже :)))
2. проекты часто сделаны таки шаляй-валяй… По причине п.1.
У нас тоже есть расчеты надежности, наработки на отказ и т.д. Правда мое мнение заключается в том, что это чисто теоретические цифры типа сферического коня в вакууме.
В случае с сименсом это не только расчёты, но и практические данные тоже. Они ж собирают данные по тем же гарантийным заменам, а S7-300/400 существует уже около 20 лет.
Не стоит так делать не потому, что система не уложится в требуемое время цикла. Уложится. Просто не следует делать шаляй-валяй.
С Сименсом мы плотно работали (в рамках стыковки систем) на Рязанской станции. И честно скажу — и в плане удобства, и в плане простоты и быстроты реализации проекта, и в плане характеристик (по моему «непредвзятому» мнению) он сильно нам уступил.
Сименс делает системы крупные, а потому довольно сложные. С наскока не разберёшься. Скорее, наоборот: с наскока совершенно непонятно, какого лешего так сложно нагорожено. Понятно становится после пары-тройки проектов. Но и косяков хватает, спору нет.
Что касается надежности, то тут ничего сказать не могу, т.к. жалоб на наше оборудование со станции не поступало, а по Сименсу мне информация недоступна. Так что будем считать примерно на равных пока.
Не скажу про надёжность, а вот с доступностью информации ситуация диаметрально противоположная. По сименсу информации вагон и вся она доступна. По Квинту… ;) Один из показателей надёжности — MTBF (mean time before fault, среднее время наработки на отказ) и у сименса есть таблица MTBF по всем модулям.
Насчёт пробовать — повторюсь, сейчас я делаю проекты в Израиле. Это совершенно ничего не меняет для продукции Siemens и существенно усложняет для Квинта. Хотя бы, потому, что выбор системы далеко не всегда зависит от меня. Да и я к российским системам отношусь с некоторым недоверием: то, с чем сталкивался, пока не впечатлило. Возможно, Квинт лучше :)
Прикрутить можно, но не нужно. По одной простой причине…
Допустим, я пишу на сименсе программу в CFC. После того, как я её напишу, я запускаю такую штуку, которая у Siemens называется AS-OS Engineering. Суть в том, что эта программа вытягивает всё, что нужно, из контроллерного проекта и забрасывает его в WinCC — это SCADA от Siemens.
Что это даёт?
В настройках, как вы выразились, алгоблока устанавливаются атрибуты у каждого параметра: задействован ли он в SCADA, требуется ли его архивировать, измеренному значению можно задать единицу измерения.
В общем, 5 минут компиляции и база переменных готова, конфигурация архива готова, аварийные/предупредительные сообщения готовы :)
Пусть это не CFC в чистом виде, но от FBD это уже значительно дальше.
В остальном же… Во-первых, не вода, а солярка :) Во-вторых, это не так сложно при наличии некоторого опыта ;)
Siemens предоставляет и IL, и LAD/FBD, и ST, и графические языки. Просто в ряде случаев есть причины ограничиться первыми тремя.
1. они входят в базовый комплект поставки.
2. они не требуют компиляции. А это значит, что в дальнейшем можно сделать upload из контроллера и получить программу в том же виде, а не фарш после компилятора.
Ну и ещё некоторые.
Насчёт реализации расчёта формулы на графике — на сименсе так точно делать не стоит :) И реализация в IL однозначно проще и быстрее для контроллера ;)
А уж переходить с сименса на что-либо другое — это фантастика. Я совершенно не уверен, что израильских заказчиков устроит совершенно незнакомая им российская разработка.
Да шучу я :)
Просто я довольно давно и плотно работаю на сименсовской технике, а сименс таки в лидерах (думаю, никто не будет спорить).
А у сименса вся система называется PCS7/Step7 (сравниваем КВИНТ 7) и контроллеры S7-300/400 (сравниваем Р-300, Р-400) :)) А уж скриншоты CFC редактора так совсем напоминают.
И, что характерно, совершенно точно Siemens не копировали Ремиконт :)
Это самый натуральный CFC (Continuous Function Chart). Он похож на FBD, и, в сущности, это его дальнейшее развитие, но это уже другой, более мощный язык.
На ST (Structured Text, SCL по-сименсовски) это, действительно, реализуется проще всего. Но, при компиляции, это превращается в IL (по-сименсовски ST :) и выглядит примерно так:
L #Radius
L #Level
-R // Radius — Level
A OV // error check in substraction operation
JC err
TAK // Preparation to divide: swap ACCUs
/R // (Radius — Level)/Radius
A OV // error check in division operation
JC err
ACOS // Arccosinus
A OV // error check in ACOS operation
JC err
L 2.000000e+000
*R // 2*ACOS((Radius — Level)/Radius)
A OV // error check in multiplication operation
JC err
PUSH // store value in ACCU2
SIN // calculating sinus
A OV // error check in SIN operation
JC err
-R // 2*ACOS((Radius — Level)/Radius) — SIN(2*ACOS((Radius — Level)/Radius))
A OV // error check in substraction operation
JC err
L 2.000000e+000
/R // Divide by 2
A OV // error check in division operation
JC err
L #Radius
SQR // Square, power 2
A OV // error check in power operation
JC err
*R // R*R*(2*ACOS((Radius — Level)/Radius) — SIN(2*ACOS((Radius — Level)/Radius)))/2
A OV // error check in multiplication operation
JC err
L #Length
*R // L*R*R*(2*ACOS((Radius — Level)/Radius) — SIN(2*ACOS((Radius — Level)/Radius)))/2
A OV // error check in multiplication operation
JC err
// Final volume
L 1.000000e+003
/R
A OV // error check in conversion operation
JC err
T #Volume
BEU // if no error stop here
err: L -1.000000e+000 //L#-1 // Returns -1 on error
T #Volume
Это текст программного блока, который написал я. Естественно, компилятор выдаст что-то, читаемое значительно менее и содержащее большее количество инструкций: немного подумав, я написал этот расчёт так, что мне даже ни разу не пришлось сохранять промежуточный результат расчёта. Для этого пришлось воспользоваться командой TAK, которая выполняет обмен значений между первым и вторым регистрами, а всего регистров два.
Реализовывать подобный расчёт на CFC через кучу блоков совершенно нерационально — куда рациональнее создать отдельный блок на ST (ваш вариант) или IL (мой) и уже его вставить в диаграмму, привязав входные и выходные параметры.
Насчёт того, что
я пишу примеры на FBD просто потому, что на языке ST это скучно
CFC (который вы упорно называете FBD) в ряде случаев намного проще в отладке (и наладке). Как правило, к моменту написания программы есть готовая библиотека типовых блоков (или допиливается в процессе :), таких, как мотор, клапан и т.д. Соответственно, если на запуске объекта всплывают ошибки в работе какого-то конкретного клапана или мотора, по «верёвкам» логических связей довольно просто отследить, откуда что берётся.
Если это самоиндукция мотора, то неважно, сколько даст источник питания. Надо гасить самоиндукцию.
Кстати, вполне могло и напряжением пробивать. При отключении индуктивной нагрузки имеет место такой эффект: запасённая в магнитном поле энергия стремится поддерживать ток. Но цепь разорвана и течь ему некуда, и это даёт рост напряжения на концах отключенного участка цепи. Чтобы этого не происходило, параллельно мотору ставят обратно включенный диод, можно с резистором — как раз, для гашения этого тока. Но в вашем случае, как я понял, не помогало?
Лично я ещё ни разу не видел лопнувшего воздушного ресивера. Кроме того, компрессор с ресивером можно вынести на балкон или в чулан. А вот масло в гидросистеме имеет свойство нагреваться. А струя горячего масла весьма небезобидна.
Текущая российская политика — превратиться в большую Северную Корею :) И полностью уйти в (само)изоляцию. Соответственно, это исключает возможность совместного ведения разработок (и совместного использования результатов). И, наоборот, толкает в сторону собственного пути: дороже, с отставанием — а в ряде случаев, так просто шлифовка буржуйских образцов и клонирование…
ОК. Однако, Intel C++ compiler от этого не становится нижегородской (российской) разработкой, верно? ;) Сколько там ключевых специалистов в Нижнем? В случае «Ч», если Intel посчитает, что продолжать эту работу в России невозможно, он просто организует релокацию этим ключевым работникам и они продолжат на новом месте.
Я согласен, что не важно и пазл может быть разбросан по всему миру, но это не совсем вариант при нынешней российской политике :)
Соответственно, я получаю доход в денежной форме (зарплата) и в натуральной: машина и телефон. Телефон, как я написал выше, в общий счёт не идёт.
Но машина от конторы, хоть и присутствует у меня по производственной надобности (приходится кататься по работе), наличествует под моей задницей не только в рабочие часы, но и в нерабочие, и в праздники, и в выходные. Короче, я пользуюсь ей, как своей (т.е. как и сколько хочу) — или как взятой в прокат за $Y в месяц. Поэтому, за гросс (т.е. базу для исчисления налогов) принимается сумма $Z + $Y — мой суммарный ежемесячный доход в денежной и натуральной формах. Если я эту машину не буду брать на постоянку, а буду кататься только в рабочее время по рабочим делам, то за гросс будет приниматься только сумма $Z.
И даже в/на Украине, если у вас возникнет доход в натуральной форме (кто-то рассчитается с вами товаром за работу или что-то другое, выиграете машину/квартиру в лотерею), я уверен, что на основании того же налогового кодекса Украины у вас появится обязанность заплатить с этого налог.
PS что касается бензина, который я сжигаю за месяц (как по рабочим делам, так и по своим) — с него я налог не плачу, в моей зарплатной расшифровке он не фигурирует — он, как раз, относится к затратам. Я, кстати, даже не знаю точной суммы, сколько я его сжигаю в месяц :)
Мне относительно недавно надо было реализовать пересчёт уровня в объём. Ёмкость — цистерна, т.е. горизонтально лежащий цилиндр. Короче, формула получается чуть сложнее, чем 2 х 2. В языке высокого уровня достаточно написать оператор присвоения и формулу справа от него, а на FBD (ну или IL — он же STL по-сименсовски) это реализуется немного заморочнее: загрузить операнды в регистры, выполнить операцию, сохранить результат, следующее действие…
А циклы реализуются самим принципом работы контроллера, который с заданной периодичностью прокручивает программу. Т.е. можно образно сказать, что все написанное — написано внутри одного большого цикла от единицы и до бесконечности. Этого в теории достаточно для написания программы под нужды технологов.
мне это можно не рассказывать, я достаточно хорошо знаком с принципом работы PLC. Не первый год уже… Однако, отечественных изделий побаиваюсь — то, что мне попадалось, было несколько кривым.
А картинки ваши, коллега, очень напоминают мне PCS7 и CFC от Siemens — знакомая штука?
Похоже, что все фото — постановочные. Я не увидел ни одних граблей вокруг стенда :))
Кстати, «ball joint» — по-русски это шаровая опора. В принципе, можно и на неё подвижную часть установить, а не на кардан — но это будет несколько геморройнее :)
Вообще, я почитал и не то, чтобы загорелся, но возникло некоторое желание повторить опыт. Пусть и не через такие тернии — притащить с авторазборки сразу и кресло получше с ремнём, и мотор-редукторы помощнее и подушку безопасности :)))). Это всё вполне доступно.
Китай, Индия и Бразилия производят более 30% электроники для мирового рынка, опережая США, страны ЕС и Японию.
Вот с этого повеселился.
США, страны ЕС и Япония, в первую очередь, эту электронику разрабатывают. Для чего требуются высококвалифицированные (и высокооплачиваемые) специалисты в относительно небольшом количестве.
А вот для того, чтобы выпустить электронику, разработанную этими специалистами, требуется фаб. Специалисты там нужны другие, оплачиваются они попроще. А про рабочих и говорить нечего. Похоже, собственная разработка правительство не интересует. Хотят, как в Китае, заводиков понаоткрывать. Каким образом это защитит от санкций и сократит отставание от лидеров — я не вполне понимаю…
Эх, в этом и проблема — что далеко не все представляют себе всю степень зависимости.
Готовые процессоры — импорт (отечественных нет).
Фабы/технологии — импорт (отечественных нет).
Сырьё для выпуска микросхем — импорт (отечественных нет).
Средсва разработки — импорт (отечественных нет).
Соответственно, «захлопнуть калитку» можно на любом уровне.
Более того, когда говорят про «уникальные» отечественные разработки, далеко не все понимают, что «уникальность», в данном случае, скорее, ругательство…
Повторюсь: у сименса столько всего, что заблудиться можно. Из этого есть неприятные следствия:
1. далеко не каждый, кто делает что-то на сименсе — специалист. Я — тоже :)))
2. проекты часто сделаны таки шаляй-валяй… По причине п.1.
В случае с сименсом это не только расчёты, но и практические данные тоже. Они ж собирают данные по тем же гарантийным заменам, а S7-300/400 существует уже около 20 лет.
Сименс делает системы крупные, а потому довольно сложные. С наскока не разберёшься. Скорее, наоборот: с наскока совершенно непонятно, какого лешего так сложно нагорожено. Понятно становится после пары-тройки проектов. Но и косяков хватает, спору нет.
Не скажу про надёжность, а вот с доступностью информации ситуация диаметрально противоположная. По сименсу информации вагон и вся она доступна. По Квинту… ;) Один из показателей надёжности — MTBF (mean time before fault, среднее время наработки на отказ) и у сименса есть таблица MTBF по всем модулям.
Насчёт пробовать — повторюсь, сейчас я делаю проекты в Израиле. Это совершенно ничего не меняет для продукции Siemens и существенно усложняет для Квинта. Хотя бы, потому, что выбор системы далеко не всегда зависит от меня. Да и я к российским системам отношусь с некоторым недоверием: то, с чем сталкивался, пока не впечатлило. Возможно, Квинт лучше :)
Допустим, я пишу на сименсе программу в CFC. После того, как я её напишу, я запускаю такую штуку, которая у Siemens называется AS-OS Engineering. Суть в том, что эта программа вытягивает всё, что нужно, из контроллерного проекта и забрасывает его в WinCC — это SCADA от Siemens.
Что это даёт?
В настройках, как вы выразились, алгоблока устанавливаются атрибуты у каждого параметра: задействован ли он в SCADA, требуется ли его архивировать, измеренному значению можно задать единицу измерения.
В общем, 5 минут компиляции и база переменных готова, конфигурация архива готова, аварийные/предупредительные сообщения готовы :)
В остальном же… Во-первых, не вода, а солярка :) Во-вторых, это не так сложно при наличии некоторого опыта ;)
Siemens предоставляет и IL, и LAD/FBD, и ST, и графические языки. Просто в ряде случаев есть причины ограничиться первыми тремя.
1. они входят в базовый комплект поставки.
2. они не требуют компиляции. А это значит, что в дальнейшем можно сделать upload из контроллера и получить программу в том же виде, а не фарш после компилятора.
Ну и ещё некоторые.
Насчёт реализации расчёта формулы на графике — на сименсе так точно делать не стоит :) И реализация в IL однозначно проще и быстрее для контроллера ;)
А уж переходить с сименса на что-либо другое — это фантастика. Я совершенно не уверен, что израильских заказчиков устроит совершенно незнакомая им российская разработка.
Просто я довольно давно и плотно работаю на сименсовской технике, а сименс таки в лидерах (думаю, никто не будет спорить).
А у сименса вся система называется PCS7/Step7 (сравниваем КВИНТ 7) и контроллеры S7-300/400 (сравниваем Р-300, Р-400) :)) А уж скриншоты CFC редактора так совсем напоминают.
И, что характерно, совершенно точно Siemens не копировали Ремиконт :)
Кстати, приведённая картинка — это не FBD в стантарте IEC (МЭК) 61131-3.
Это самый натуральный CFC (Continuous Function Chart). Он похож на FBD, и, в сущности, это его дальнейшее развитие, но это уже другой, более мощный язык.
На ST (Structured Text, SCL по-сименсовски) это, действительно, реализуется проще всего. Но, при компиляции, это превращается в IL (по-сименсовски ST :) и выглядит примерно так:
Это текст программного блока, который написал я. Естественно, компилятор выдаст что-то, читаемое значительно менее и содержащее большее количество инструкций: немного подумав, я написал этот расчёт так, что мне даже ни разу не пришлось сохранять промежуточный результат расчёта. Для этого пришлось воспользоваться командой TAK, которая выполняет обмен значений между первым и вторым регистрами, а всего регистров два.
Реализовывать подобный расчёт на CFC через кучу блоков совершенно нерационально — куда рациональнее создать отдельный блок на ST (ваш вариант) или IL (мой) и уже его вставить в диаграмму, привязав входные и выходные параметры.
Насчёт того, что
CFC (который вы упорно называете FBD) в ряде случаев намного проще в отладке (и наладке). Как правило, к моменту написания программы есть готовая библиотека типовых блоков (или допиливается в процессе :), таких, как мотор, клапан и т.д. Соответственно, если на запуске объекта всплывают ошибки в работе какого-то конкретного клапана или мотора, по «верёвкам» логических связей довольно просто отследить, откуда что берётся.
Кстати, вполне могло и напряжением пробивать. При отключении индуктивной нагрузки имеет место такой эффект: запасённая в магнитном поле энергия стремится поддерживать ток. Но цепь разорвана и течь ему некуда, и это даёт рост напряжения на концах отключенного участка цепи. Чтобы этого не происходило, параллельно мотору ставят обратно включенный диод, можно с резистором — как раз, для гашения этого тока. Но в вашем случае, как я понял, не помогало?
Я согласен, что не важно и пазл может быть разбросан по всему миру, но это не совсем вариант при нынешней российской политике :)
Соответственно, я получаю доход в денежной форме (зарплата) и в натуральной: машина и телефон. Телефон, как я написал выше, в общий счёт не идёт.
Но машина от конторы, хоть и присутствует у меня по производственной надобности (приходится кататься по работе), наличествует под моей задницей не только в рабочие часы, но и в нерабочие, и в праздники, и в выходные. Короче, я пользуюсь ей, как своей (т.е. как и сколько хочу) — или как взятой в прокат за $Y в месяц. Поэтому, за гросс (т.е. базу для исчисления налогов) принимается сумма $Z + $Y — мой суммарный ежемесячный доход в денежной и натуральной формах. Если я эту машину не буду брать на постоянку, а буду кататься только в рабочее время по рабочим делам, то за гросс будет приниматься только сумма $Z.
И даже в/на Украине, если у вас возникнет доход в натуральной форме (кто-то рассчитается с вами товаром за работу или что-то другое, выиграете машину/квартиру в лотерею), я уверен, что на основании того же налогового кодекса Украины у вас появится обязанность заплатить с этого налог.
PS что касается бензина, который я сжигаю за месяц (как по рабочим делам, так и по своим) — с него я налог не плачу, в моей зарплатной расшифровке он не фигурирует — он, как раз, относится к затратам. Я, кстати, даже не знаю точной суммы, сколько я его сжигаю в месяц :)
Мне относительно недавно надо было реализовать пересчёт уровня в объём. Ёмкость — цистерна, т.е. горизонтально лежащий цилиндр. Короче, формула получается чуть сложнее, чем 2 х 2. В языке высокого уровня достаточно написать оператор присвоения и формулу справа от него, а на FBD (ну или IL — он же STL по-сименсовски) это реализуется немного заморочнее: загрузить операнды в регистры, выполнить операцию, сохранить результат, следующее действие…
мне это можно не рассказывать, я достаточно хорошо знаком с принципом работы PLC. Не первый год уже… Однако, отечественных изделий побаиваюсь — то, что мне попадалось, было несколько кривым.
А картинки ваши, коллега, очень напоминают мне PCS7 и CFC от Siemens — знакомая штука?
Кстати, «ball joint» — по-русски это шаровая опора. В принципе, можно и на неё подвижную часть установить, а не на кардан — но это будет несколько геморройнее :)
Вообще, я почитал и не то, чтобы загорелся, но возникло некоторое желание повторить опыт. Пусть и не через такие тернии — притащить с авторазборки сразу и кресло получше с ремнём, и мотор-редукторы помощнее
и подушку безопасности :)))). Это всё вполне доступно.Вот с этого повеселился.
США, страны ЕС и Япония, в первую очередь, эту электронику разрабатывают. Для чего требуются высококвалифицированные (и высокооплачиваемые) специалисты в относительно небольшом количестве.
А вот для того, чтобы выпустить электронику, разработанную этими специалистами, требуется фаб. Специалисты там нужны другие, оплачиваются они попроще. А про рабочих и говорить нечего. Похоже, собственная разработка правительство не интересует. Хотят, как в Китае, заводиков понаоткрывать. Каким образом это защитит от санкций и сократит отставание от лидеров — я не вполне понимаю…
Готовые процессоры — импорт (отечественных нет).
Фабы/технологии — импорт (отечественных нет).
Сырьё для выпуска микросхем — импорт (отечественных нет).
Средсва разработки — импорт (отечественных нет).
Соответственно, «захлопнуть калитку» можно на любом уровне.
Более того, когда говорят про «уникальные» отечественные разработки, далеко не все понимают, что «уникальность», в данном случае, скорее, ругательство…
— А радиостанция на лампах или полупроводниках?
— Повторяю: радиостанция на бронетранспортёре.
:))