Просмотр полной версии : Восстановление программы
smashrod
10.11.2011, 19:33
Доброго времени суток всем участникам форума! Возможно ли сделать копию программы ПЛК, чтобы потом можно было восстанавливать без исходных текстов?
Т.е. иметь под рукой только бинарные слепки, загружаемые на чистые контроллеры, или при восстановлении функционала.
Николаев Андрей
10.11.2011, 23:37
Шаманскими методами и при большом количестве условий.
Таки сильно рекомендуем сохранять исходник. Так же исходный файл можно шить прям в контроллер (есть такая команда в меню онлайн).
smashrod
11.11.2011, 09:51
получается, тогда рпоще зашить шифрованный исходник в контроллер, чтобы потом можно было если что его подправить или восстановить?
А есть сведения каке-либо по стойкости защиты КДС своих проектов?
Николаев Андрей
12.11.2011, 10:07
Ох уж эти защитники :)
Просто каждые пол-года эта тема обязательно поднимается... :)
1. Сделали проект - отдайте проект на CoDeSys заказчику после оплаты. Он его точно сохранит, хотя и я бы хранил.
2. Если Вы не передаете исходный проект: В контроллер записывается уже скомпилированный код - декомпиляции не поддается. Простым копированием добиться чего то сложно.
К тому же всегда надо понимать, задаваясь такими вопросами:
Если заказчик имеет специалистов, которые умеют ломать проекты, коды программ - этим спецам легче просто переписать созданный Вами проект с нуля... :) Как говорят программисты - легче написать самому, чем разбираться с чужим кодом.
smashrod
12.11.2011, 10:44
Спасибо, за ответ, я честно говоря также говорю ))) по поводу переписать. Вполне хватит, что я отдам проект без возможности записи, т.е. прошить контроллер всегда смогут.
Ох уж эти защитники :)
Просто каждые пол-года эта тема обязательно поднимается... :)
Вот здесь я не согласен, если поднимается, значит имеет право на жизнь!
Как договариваться с заказчиком на предмет владения исходным кодом дело каждого отдельного случая и др. особенностей!
Я точно не уверен, но вроде были обещания, со стороны "ОВЕН" решить эту проблему!
Добавили б, в модуль статистики, пункт с серийным номером контроллера, который как и температура считывается откудато из "глубины души" железки, и дело с концом ;) .
Алексей Дмитриев
12.11.2011, 21:04
Туфта это все. Защита программы вредна не только заказчику, но и разработчику. Не лучше-ли отдать исходник и еще объяснить эксплуатирующему персоналу что там и зачем. Когда Вас начнут дергать из-за каждой мелочи и придется ездить через всю страну - запомните эти слова.:D
у нас даже президент знает что такое твитер :), делается все намного проще, выслушиваются претензии, исправляются недостатки, высылается по электронке, местными устанавливается, ездить не надо и интеллектуальная собственность не пострадает
хочу что бы Вы обьяснили последовательность действий подробнее....вроде обсуждалось, но тем не менее...
делайте свою главную программу в проекте в виде ФБ,... Далее все ФБ и ФС проекта, сохраняете в библиотеке под паролем.
+1
На уровне PLC_PRG осуществлять привязку с физич.входам выходам. У заказчика будет возможность переопределить их. Если что.
делайте свою главную программу в проекте в виде ФБ
Ух, замечательно! Спасибо, как раз пришло время задуматься о таких технологиях. Потренируюсь с установкой пароля, раньше такого не приходилось делать...
Но вот еще, в развитие темы. Допустим, что наша программа пишется в ПЛК, ПЛК едет за тридевять земель и работает. И это не уникальный проект, разработанный и установленный квалифицированными специалистами у конкретного заказчика. Наоборот, устройства расползаются, как китайские гирлянды :) И устанавливаются где попало. И работают. Их достаточно много.
Представили? ОК, идем дальше. Возникла необходимость обновить программу. То ли баг, то ли просто "лучшее убивает хорошее" - но возникла. А сейчас модно на всякие девайсы раздавать прошивку прямо с Инета. Вот и я думаю: а как бы сделать перепрошивку проекта в ПЛК дистанционно? Заметьте, на том конце провода люди понятия не имеют о чудесной КоДеСис. Лучшее, что они могут - подключить (как-то) ПЛК в Инету и сказать: валяйте, перепрошивайте!
Какова будет процедура? Да и возможно ли это, с учетом приведеных ограничений?
Замечу, что раздавать прошивку так, чтобы потом ее каждый китаец заливал в ПЛК100, я не хочу. Некоторая степень защиты интеллектуальной собственности должна быть. Но и зацикливаться на защите я не собираюсь. Не думаю, что будут серьезные попытки выудить мою супер-пупер программу из того, что я пошлю по Инету.
Что посоветуете?
Спасибо!
подключив ПЛК к интернету, открываете порт 1200
То есть, прошиваю совершенно аналогично обычной процедуре - из КоДеСис? Сначала происходит подключение ОНЛАЙН, затем могу поотлаживать, ежели чего, затем создать загрузочный проект. Именно так?
Спасибо, попробую. Верю, что сумею открыть тот порт (никогда не делал). А потом научить парня из далекого далека сделать то же самое :)
PLC_PRG должен состоять из одной строчки, с запуском главного ФБ. Далее все ФБ и ФС проекта, сохраняете в библиотеке под паролем. В КДС посторонних Ваши ФБ будут выглядеть в виде прямоугольников со входами и выходами, залезть внутрь нужен будет пароль. Поэтому получив правленный проект по электронной почте, у заказчика будет возможность только залить его в ПЛК, а не прочитать. Те кто в состоянии выудить из такого проекта нужную информации, быстрее сами напишут необходимый проект, чем обратятся к сторонним программистам
какой пароль надо ставить на библиотеку, на запись или на весь? Просто если поставить на весь проект пароль, то проект не загрузится вовсе, а если на запись, то всегда можно открыть отдельно библиотеку и посмотреть её содержимое.
Или другая процедура сокрытия кода в библиотеках?
В архиве видео
М-дя... Это должно быть понятно?
Ну, проще сказать, что понятно :)
Ладно, не парь моск. Я буду пробовать, тогда прояснится. Я просто хотел сказать, что видео, если оно претендует на ОБЪЯСНЕНИЕ, должно быть более экспликативным. Или там расчет не на таких тупых, как я :)
Ну, тогда уж ссылочку кинь, мил человек!
В архиве видео
Э-э... Запутался. Говорю же: не парься. Буду пробовать.
Итак, для тех, кто в танке. Рассказываю так подробно, как хотел услышать сам :)
Цель:
создать проект, который можно передать грамотному заказчику для (пере)прошивки ПЛК с помощь. КоДеСис, установленной на его компе. При этом сам проект открывать не хотим.
Шаги:
1) Создаем работащий проект :) Допустим, мы даже не задумывались о защите исходников от стороннего глаза - поэтому оформляем проект самым обычным образом. Стало быть, у него есть ненулевая PLC_PRG. Если же задумывались, то шаг 2 можно пропустить.
2) Копируем всю PLC_PRG в, допустим, PLC_PRG. Наверное, это можно сделать переименованием PLC_PRG, я делал привычное копипейст.
3) Создаем пустую PLC_PRG, в которой единственный оператор
My_PLC_PRG;
4) В Проект-Опции-Пароли вводим пароль и его повтор. В поле "Пароль защиты записи", ничего не пишем
5) Компилируем, загружаем, проверяем, что все чики-пики. Если нужно, создаем загрузочный проект и ПЛК готов к отправке.
6) В меню Файл-Сохранить как выбираем Сохранить как: "Внутренняя биб-ка". При этом сохранится проект с расширением LIB. Имя и директорию тоже можно поменять, если охота. Я складываю свои (и Валенка) библиотеки в отдельную папку.
Замечу, что перед сохранением проекта в виде библиотеки я ни разу не задумывался над убиранием из него новой (почти пустой) PLC_PRG. Как-то КДС сама разбирается, что это уже не нужно при использовании библиотеки.
7) Теперь создаем проект, который можно отправить пользователю. Я, конечно, его переименовал, но за основу взял тот же проект, что записал в библиотеку.
Итак, из этого проекта я вырезаю все POU, кроме PLC_PRG. Удаляю также визуализации, типы данных и глобальные переменные.
Далее. В менеджере библиотек добавляю 1 библиотеку - как раз ту, что только что создал на шаге 6. Убеждаюсь, что все ее POU первого уровня открываются как черный ящик, а второго уровня не открываются вообще. ОК, концы в воду :)
8) Нужно открыть такой "урезанный" проект для пользователя. В Проект-Опции-Пароли очищаем пароль (и его повтор).
9) Компилируем проект. Если чего не дорезали - КДС ругнется. Подчистим. Загрузим в ПЛК. Проверим. Похлопаем себя по плечу: Молодец.
Этот проект можно отправлять пользователю для самостоятельной прошивки. Я думаю, что достаточно отправить буквально 1 файл с расширением .PRO, ну и конечно же все собственные библиотеки, среди которых главная - это наш закодированный проект. По-хорошему, не мешает проверить возможность компиляции того, что отправляется, на другом компе или хотя бы из совершенно другой директории.
Уф. Мог и напутать по ходу. С благодарностью приму указания на неточности (и исправлю их). Считаю, что потом сослаться на сей постинг придется не раз. Давайте дадим четкую инфо даже тем людям, которые (о, ужас!) не хотят додумываться до всего сами.
capzap, drvlas вы сохраняете как "кодированная внутренняя библиотека"?
пробовал библиотеку от capzap - вставляется в проект без вопросов. делал свою - при вставке в проект просит пароль. что делать/не делать, чтоб не просила пароль в менеджере библиотек при импорте?
Я работаю без понимания. Танцую с бубном. Вот то, как описал - работает. Где ты там видел "кодированные библиотеки"?
файл > сохранить как > выбираем как что сохранять в выпадающем списке
p.s. все верно у вас, надо было мне внимательнее читать. просто внутренняя библиотека принимает пароль проекта как пароль на свое вскрытие
p.p.s. еще бы КДС умел подгружать библиотеки из относительных путей, чтоб в "далеком далеке" ручками заново не подсоединяли отвалившиеся из-за несовпадения путей библиотеки
Дмитрий Артюховский
18.11.2011, 13:51
а поиском по форуму полазить?
копируем с рабочего контроллера 3 файла
DEFAULT.PRG
DEFAULT.CHK
config.dat
при необходимости заливаем в новый и все работает ))
Дмитрий Артюховский
23.11.2011, 21:45
а зачем такие сложности, можно из КДС загрузить на n-ое количество ПЛК один проект, я говорил о защите реализации программного кода
топик-стартер задавал вопрос о восстановлении кода на новый ПЛК из бинарника, исходник ему не нужен.....
для загрузки проекта из Кодесиса его нужно как минимум установить и возможно научить "левого" человека обращению с достаточно сложной программой
зачем такие мучения если для реализации задачи неподготовленному человеку достаточно воткнуть кабель в контроллер и нажать на ярлычек с надписью "нажми на меня"...
некоторые даже знают где читать, притом открывая ворд-документ надо проделать те же операции, особых сложностей нет
не мог не пройти мимо и не прокоментировать.
Сейчас это уже не простые операции, уже нет такого понятия "особых сложностей нет" -
сейчас работа с офисом стала настоящим объектно-ориентированным программированием, это я вам говорю, профессиональный программист, мне сейчас сложнее в офисе работать, чем программировать. и это не только мне, это самая обсуждаемая тема в интернете по мс-офису.
так что этот пример не соотвествующий )
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot