Добрый день. Скажите, пожалуйста, кто-нибудь смог защитить программно проект от копирования в ПЛК63? Если да, то подскажите, пожалуйста,как, нууу ооооооочень надо. Можно и на почту pasha_sh@e1.ru .
Вид для печати
Добрый день. Скажите, пожалуйста, кто-нибудь смог защитить программно проект от копирования в ПЛК63? Если да, то подскажите, пожалуйста,как, нууу ооооооочень надо. Можно и на почту pasha_sh@e1.ru .
Добрый день.
Это не надо делать - проект из ПЛК63 достать невозможно.
Проект достать невозможно это я понимаю, но его можно растиражировать на другой ПЛК63. Объясню почему я не могу отдать коды. Нами разработана серийная установка (клапана, датчики и т.д.) и она управляется контроллером(на данный момент импортным, но стоит задача импортозамещения). Конкуренты легко могут повторить все железо, но не имея алгоритма управления или контроллера с программой все это железо ничего не стоит. Так вот подскажите, пожалуйста, как защититься от тиражирования.
Скажем так. Достать "стандартными" методами скомпилированную программу именно из ПЛК63 - невозможно.
От "нестандартных" методов, типа выпаять память, прочитать ее программатором, записать впаять - Вы принципиально не защититесь. Информация копируется - это ее фундаментальное свойство.
Вот хотел бы поподробнее услышать про "стандартные" методы.
А зачем нужна тогда программа тиражирования?
Вот выдержка из ее описания:
"...Программа тиражирования предназначена для копирования программы из одного контроллера на другой без использования CoDeSys. Данная программа не позволяет считать исходный код проекта, она копирует образ памяти с программой(в компилированном виде) и позволяет распространить его на подобные устройства. Программа позволяет копировать данные только на аналогичные устройства, например с ПЛК73M только на ПЛК73М."
То есть, я могу купить один ПЛК63 или ПЛК-73 с программой, а потом с помощью программы тиражирования попросту распространять ее на "пустые" ПЛК.
Не так ли?
А Вы после программирования ПЛК сломайте ему порт Debug, замкнуть перемычкой Tx и Rx, или откусить что-либо на плате. И ПЛК с такой "доработкой" - в шкаф управления, пусть конкуренты голову ломают.
ЗЫ. А можно не ломать порт,
Т.к. программа тиражирования работает через кабель КС2, то нужно припаять перемычку между 4 и 5 конт. в разьеме ПЛК, в результате КС2 будет восприниматься ПЛК как КС1. В результате КДС будет подключаться к ПЛК нормально, а программа тиражирования - нет:rolleyes:
Только Ваши потенциальные конкуренты то же сидят на этом форуме:)Цитата:
"Параметр "dev" считать не удалось. Прибор не ответил на запрос."
Еще есть какие-нибудь варианты, а то про разные перемычки я тоже думал, но их не так сложно вычислить. Можно и на почту pasha_sh@e1.ru .
НЯЗ, эта программа копирования так и не появилась.
Ну, защититься программно никто не запрещал.
Про это не раз говорили на форуме.
Первое, что в голову пришло - простейший счетчик организовать.
И, например, нажимать после загрузки программы в ПЛК 10 раз кнопку "альт" на плк.
Результат счета записать в переменную ретайн.
Если значение переменной= 10, то начать работу.
В смысле - не появилась?
Сейчас только что проделал следующее.
Взял лишний кабель КС1, раскусил внутри разъёма перемычку - получился КС2;
С помощью программы тиражирования ( http://www.owen.ru/catalog/codesys_v2/72830689 ), считал в файл свою программу из ПЛК;
Создал простейший проект ( ; ) ;
Записал его в ПЛК-73 с помощью КС-1;
Присоединил КС-2, запустил программу тиражирования - и пожалуйста! Моя старая программа из файла в компьютере прекрасно переместилась в ПЛК, затерев при этом только что созданную.
Таким образом я бы мог за полчаса более десятка ПЛК запрограммировать. Безо всяких КДС. И не факт, что своим кодом.:)
Так что - вопрос остаётся.
Программный способ с ретайн-переменными не поможет, т.к. они тоже тиражируются, так что остается задать пароль/комбинацию на каждый пуск установки при включении (не только на первый).
Где-то на форуме читал, что вроде бы у каждого контроллера есть некие калибровочные коэффициенты аналоговых входов, у всех они разные. Кто-нибудь может прокомментировать, возможно ли их использовать и как к ним обращаться?
Программный вариант защиты от тиражирования есть..но Вы же не хотите,чтобы тут его описали-враг не дремлет и тоже читает форумы :)
А вообще,любую защиту можно обойти,если знать,как она работает.
п.с. даю подсказку-обычно в электрической схеме бывает не только контроллер.но и ...и не один...
Не надо ничего выпаивать.
Делаем просто.
1. Заводим параметр, защищённый паролем и с атрибутом "не редактировать по сети(или вообще без сети)", тип "конфигурационный"
2. В программе привязываем работоспособность программы к значению параметра, при этом программа должна считывать значение при старте. Также можно поменять значение на другое на время работы программы через канал I/O(значение в EEPROM не поменяется)
3. Задаем параметру нужное значение с панели.
4. Программа тиражирования не сможет записать значение в параметр, запрещенный к изменению по сети
5. Программу желательно сделать так, чтобы она не совсем ломалась, а немного сбоила.
6. Для надёжности завести несколько параметров.
Конечно, взломать можно, но это уже не тривиальное скопировал и вперёд.
Альтернативно, можно привязывать программу к значениям калибровочных коэффициентов (они уникальны для кажого прибора), но не пробовал, пока чисто теория
Кто знает, как реализовать, поделитесь, пожалуйста. irgyska@mail.ru
есть файл калибровки, для ПЛК15х. Считываем, сравниваем с забитыми в программе, решаем можно ли работать программе.
Разве этот файл не попадёт с остальными на другой контроллер, если я попытаюсь скопировать программу на новое железо (понятно, что калибровки не подходящие)?
Есть 2 варианта:
1. ПЛК запаролен - скачать файлы не удастся, защита работает 100%
2. ПЛК не запаролен, файл копируют, но его аналоговые I/O работают с погрешностью.
от тиражирования надо привязываться к устройству (например панели или еще чему, откуда можно считать уникальный идентификатор). В остальных случаях копируются все файлы с ПЛК и зашиваются в новый.
Как пример, например программа считывает показания счетчика электроэнергии, из него можно считать серийный номер. Отдавать DEFAULT для прошивки по месту (если слетела). Если обновление - делать по воздуху самостоятельно.