น่าเสียดายที่คำตอบนั้นขึ้นอยู่กับผู้ขาย PLC ที่คุณใช้งาน ส่วนใหญ่เก็บรหัสไว้ในรูปแบบไฟล์ที่เป็นกรรมสิทธิ์ดังนั้นจึงยากที่จะใช้การควบคุมแหล่งที่มาปกติ
Rockwell เสนอFactoryTalk AssetCenterหากคุณใช้ Allen-Bradley ฉันไม่ได้ตั้งราคา แต่อาจมีราคาแพง มันทำได้มากกว่าการควบคุมแหล่งที่มา
ฉันใช้การควบคุมแหล่งข้อมูลปกติ (Mercurial) กับไฟล์ Beckhoff TwinCAT PLC ดูเหมือนว่าจะทำงานได้ดี แต่ฉันไม่เคยผสานกับใครเลย TwinCAT เวอร์ชั่นใหม่ของพวกเขา (3) กำลังจะวางจำหน่ายในปลายปีนี้น่าจะถูกสร้างขึ้นใน Visual Studio 2010 และฉันคาดว่าจะมีข้อเสนอที่ดีกว่าสำหรับการรวมการควบคุมเวอร์ชัน ไขว้นิ้วเอาไว้.
เริ่มแก้ไข
ฉันแค่อยากจะเพิ่มว่าตอนนี้ฉันใช้ผลิตภัณฑ์ TwinCAT 3 ใหม่แล้วและฉันกำลังใช้ Mercurial (TortoiseHg และ Add-in ของ VisualHg สำหรับ Visual Studio) มันทำงานได้ค่อนข้างดี ก่อนอื่น VisualHg ทำให้รู้สึกว่ารวมเข้ากับ Visual Studio 2010 IDE ที่ TwinCAT 3 ใช้ อย่างไรก็ตามซอร์สโค้ดสำหรับโปรแกรม TwinCAT 3 นั้นโดยทั่วไปจะถูกเก็บไว้ในไฟล์ XML นี่เป็นการปรับปรุงรูปแบบไบนารีที่เป็นกรรมสิทธิ์ของผู้ขายรายอื่นที่ฉันใช้ไป แต่ก็ยังไม่ได้ผสานกัน ไฟล์บางไฟล์ไม่มีตัวแบ่งบรรทัดใน XML (ฉันเขียนถึงเบ็คฮอฟเกี่ยวกับเรื่องนี้) ซึ่งหมายความว่าระบบควบคุมแหล่งข้อมูลแบบบรรทัดต่อบรรทัดไม่ได้ทำอะไรมาก นอกจากนี้เนื่องจากเป็น XML ลำดับของโหนดในไฟล์ XML จึงดูเหมือนจะเปลี่ยนแบบสุ่มแม้ว่าคุณจะไม่ทำการเปลี่ยนแปลงก็ตาม นอกจากนี้ ฉันคิดว่าบางครั้งมันจะสร้าง ID ใหม่สำหรับบางโหนดเมื่อมันไม่จำเป็นต้องทำซึ่งทำให้เกิดการเปลี่ยนแปลงที่ไม่จำเป็นซึ่ง Hg หยิบขึ้นมา สิ่งนี้ทำให้เป็นไปไม่ได้ที่จะทำการเปลี่ยนแปลงโปรแกรม TwinCAT 3 โดยโปรแกรมเมอร์ 2 คนในเวลาเดียวกันจากนั้นจึงรวมการเปลี่ยนแปลง มันเป็นความโชคร้ายของนักพัฒนา TwinCAT 3 ที่ไม่ต้องสงสัยเลยว่าใช้การควบคุมแหล่งข้อมูลเป็นประจำในการทำงานของตัวเองและไม่เห็นประโยชน์สำหรับพวกเราโปรแกรมเมอร์ระบบอัตโนมัติที่มีการเข้าถึงเครื่องมืออันทรงพลังเช่นเดียวกัน :( ที่ไม่ต้องสงสัยเลยว่าใช้การควบคุมแหล่งที่มาเป็นประจำในงานของตัวเองและไม่เห็นประโยชน์สำหรับเราที่โปรแกรมเมอร์ระบบอัตโนมัติต่ำต้อยเพื่อเข้าถึงเครื่องมือที่ทรงพลังเช่นเดียวกัน :( ที่ไม่ต้องสงสัยเลยว่าใช้การควบคุมแหล่งที่มาเป็นประจำในงานของตัวเองและไม่เห็นประโยชน์สำหรับเราที่โปรแกรมเมอร์ระบบอัตโนมัติต่ำต้อยเพื่อเข้าถึงเครื่องมือที่ทรงพลังเช่นเดียวกัน :(
สิ้นสุดการแก้ไข
เริ่มแก้ไข # 2
ฉันอยากจะชี้ให้เห็นว่า TwinCAT 3.1 ในขณะนี้มีรูปแบบไฟล์ที่เหมาะกับการควบคุมซอร์สโดยเฉพาะไฟล์ภาษาข้อความที่มีโครงสร้าง ที่จริงแล้วตอนนี้ผลิตภัณฑ์ถูกสร้างขึ้นเพื่อรองรับการรวมเข้ากับ Team Foundation Server ฉันเชื่อว่า
สิ้นสุดการแก้ไข # 2
อีกทางเลือกหนึ่งคือโปรแกรม PLC ส่วนใหญ่สามารถส่งออกเป็นไฟล์ข้อความได้ ตัวอย่างเช่น RSLogix 5000 ส่งออกโครงการไปยังไฟล์ L5K ซึ่งเป็นเพียงข้อความ ฉันใช้งานสคริปต์กับไฟล์เหล่านี้มาก่อน - มันค่อนข้างง่ายในการแยก พวกเขาจะทำงานได้ดีกับการควบคุมแหล่งที่มา แน่นอนว่าหมายถึงการส่งออกทุกครั้งซึ่งแย่มาก
หากคุณไปกับการควบคุมเวอร์ชันมาตรฐานฉันขอแนะนำ VCS แบบกระจายอย่างเช่น Git หรือ Mercurial เพราะด้วย PLC ครึ่งเวลาที่คุณอยู่ในสถานที่และไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ภายในบ้านของคุณได้ดังนั้นความสามารถในการทำคอมมิชชันท้องถิ่น เป็นโบนัสจริง
อีกอย่างที่คุณต้องรู้ก็คือสภาพแวดล้อมการตั้งโปรแกรม PLC บางตัวเช่น RSLogix มีเครื่องมือ diff อยู่แล้วดังนั้นคุณจึงสามารถทำงานกับโครงการสองเวอร์ชันได้ สิ่งนี้รวมกับการบันทึกไฟล์ใหม่ด้วยวันที่วันนี้ทุกวันเป็นสิ่งที่ร้านค้าระบบอัตโนมัติส่วนใหญ่ดูเหมือนจะได้รับด้วย