Infelizmente, a resposta vai depender do fornecedor do PLC que você está usando. A maioria deles armazena seu código em formatos de arquivo proprietários, tornando difícil o uso de controle de origem regular.
A Rockwell oferece o FactoryTalk AssetCenter se você estiver usando a Allen-Bradley. Eu não o preço, mas provavelmente é caro. Ele faz mais do que o controle de origem.
Eu usei controle de fonte regular (Mercurial) com arquivos Beckhoff TwinCAT PLC. Isso parece funcionar bem, mas nunca tive que me fundir com ninguém. A nova versão do TwinCAT (3), lançada no final deste ano, deve ser criada no Visual Studio 2010, e suponho que haverá ofertas melhores e prontas para a integração do controle de versão. Dedos cruzados.
Iniciar Edição
Eu só queria acrescentar que agora usei o novo produto TwinCAT 3 e estou usando o Mercurial (TortoiseHg e o suplemento VisualHg do Visual Studio). Está funcionando muito bem. Antes de tudo, o VisualHg faz com que se sinta muito integrado ao IDE do Visual Studio 2010 que o TwinCAT 3 usa. No entanto, o código fonte dos programas TwinCAT 3 geralmente é armazenado em arquivos XML. Essa é uma grande melhoria em relação aos formatos binários proprietários de outros fornecedores que eu usei, mas ainda não se fundem bem. Alguns dos arquivos não possuem nenhuma quebra de linha no XML (escrevi para Beckhoff sobre isso), o que significa que um sistema de controle de fonte linha por linha não faz muito. Além disso, como é XML, a ordem dos nós no arquivo XML parece mudar aleatoriamente, mesmo quando você não faz nenhuma alteração. Além disso, Eu acho que às vezes gera novos IDs para alguns nós quando não é necessário, o que gera alterações supérfluas que Hg capta. Isso efetivamente torna impossível fazer alterações em um programa TwinCAT 3 por 2 programadores ao mesmo tempo e depois mesclar as alterações. É uma infeliz supervisão dos desenvolvedores do TwinCAT 3, que sem dúvida usam o controle da fonte regularmente em seu próprio trabalho, e não viram a vantagem para nós, programadores de automação humilde, de ter acesso a ferramentas igualmente poderosas. :( que, sem dúvida, usam o controle de origem regularmente em seu próprio trabalho e não viram a vantagem para nós, programadores de automação humilde, de ter acesso a ferramentas igualmente poderosas. :( que, sem dúvida, usam o controle de origem regularmente em seu próprio trabalho e não viram a vantagem para nós, programadores de automação humilde, de ter acesso a ferramentas igualmente poderosas. :(
End Edit
Iniciar edição nº 2
Gostaria de salientar que o TwinCAT 3.1 agora possui formatos de arquivo mais adequados ao controle de origem, principalmente os arquivos de linguagem de texto estruturados. De fato, agora o produto foi desenvolvido para oferecer suporte à integração com o Team Foundation Server, acredito.
Finalizar edição nº 2
A outra alternativa é que a maioria dos programas PLC pode ser exportada para arquivos de texto. O RSLogix 5000, por exemplo, exporta seus projetos para um arquivo L5K, que é apenas texto. Eu executei scripts nesses arquivos antes - eles são fáceis de analisar. Eles funcionariam bem com o controle de origem. Claro que isso significa exportar toda vez, o que é péssimo.
Se você optar por qualquer controle de versão padrão, sugiro um VCS distribuído, como Git ou Mercurial, porque com CLPs, metade do tempo em que você está no local e não pode se conectar ao servidor doméstico, então a capacidade de realizar confirmações locais é um bônus real.
A outra coisa que você precisa entender é que alguns ambientes de programação de CLP, como o RSLogix, já incluem uma ferramenta diff, para que você possa executar diffs em duas versões de seus projetos. Combinado a salvar um novo arquivo com a data de hoje todos os dias, é com isso que a maioria das lojas de automação parece se dar bem.