К сожалению, ответ будет зависеть от поставщика ПЛК, которого вы используете. Большинство из них хранят свой код в проприетарных форматах файлов, что затрудняет использование обычного контроля версий.
Rockwell предлагает FactoryTalk AssetCenter, если вы используете Allen-Bradley. Я не оценил это, но это, вероятно, дорого. Это делает больше, чем контроль источника, хотя.
Я использовал регулярный (Mercurial) контроль исходного кода с файлами PLC Beckhoff TwinCAT. Кажется, это работает хорошо, но мне никогда не приходилось сливаться ни с кем. Предполагается, что их новая версия TwinCAT (3), выпущенная позднее в этом году, будет построена на Visual Studio 2010, и я предполагаю, что у нее будет гораздо больше готовых предложений для интеграции контроля версий. Скрещенные пальцы.
Начать редактировать
Я просто хотел добавить, что теперь я использую новый продукт TwinCAT 3 и использую Mercurial (TortoiseHg и надстройка VisualHg для Visual Studio). Это работает довольно хорошо. Прежде всего, VisualHg делает его очень интегрированным в среду разработки Visual Studio 2010, которую использует TwinCAT 3. Однако исходный код для программ TwinCAT 3 обычно хранится в файлах XML. Это значительное улучшение по сравнению с проприетарными двоичными форматами других производителей, которые я использовал, но оно все еще не очень хорошо сливается. В некоторых файлах нет никаких разрывов строк в XML (я написал об этом Бекхоффу), что означает, что система построчного управления исходным кодом мало что делает. Кроме того, поскольку это XML, порядок узлов в XML-файле меняется случайным образом, даже если вы не вносите никаких изменений. Также, Я думаю, что иногда он генерирует новые идентификаторы для некоторых узлов, когда в этом нет необходимости, что приводит к лишним изменениям, которые обнаруживает Hg. Это фактически делает невозможным внесение изменений в программу TwinCAT 3 двумя программистами одновременно, а затем объединение изменений. Это неудачный недосмотр разработчиков TwinCAT 3, которые, несомненно, регулярно используют контроль исходного кода в своей работе и не видят преимущества для нас, программистов автоматизации, в доступе к таким же мощным инструментам. :( которые, несомненно, регулярно используют управление исходным кодом в своей работе, и не видят для нас преимущества в том, чтобы мы, программисты автоматизации, имели доступ к таким же мощным инструментам. :( которые, несомненно, регулярно используют управление исходным кодом в своей работе, и не видят для нас преимущества в том, чтобы мы, программисты автоматизации, имели доступ к таким же мощным инструментам. :(
Конец Править
Начать редактировать # 2
Я хотел бы отметить, что TwinCAT 3.1 теперь имеет форматы файлов, которые лучше подходят для управления исходным кодом, особенно файлы на языке структурированного текста. На самом деле, я считаю, что продукт теперь создан для поддержки интеграции с Team Foundation Server.
Конец Правки № 2
Другой альтернативой является то, что большинство программ ПЛК можно экспортировать в текстовые файлы. Например, RSLogix 5000 экспортирует свои проекты в файл L5K, который является просто текстом. Раньше я запускал сценарии для этих файлов - их довольно легко разобрать. Они будут хорошо работать с контролем версий. Конечно, это означает, что экспорт каждый раз, что отстой.
Если вы используете какой-либо стандартный контроль версий, я настоятельно рекомендую распределенную VCS, такую как Git или Mercurial, потому что с ПЛК половину времени вы находитесь на месте и не можете подключиться к вашему домашнему серверу, поэтому возможность делать локальные коммиты это настоящий бонус.
Еще одна вещь, которую вы должны понять, это то, что некоторые среды программирования ПЛК, такие как RSLogix, уже включают инструмент diff, поэтому вы можете запускать diff для двух версий ваших проектов. Это, в сочетании с сохранением нового файла с сегодняшней датой каждый день, - то, с чем, похоже, справляется большинство магазинов автоматизации.