ファイルベースのストレージ
でCODESYS 3プロジェクトは単一のバイナリファイルに保存されます。このファイルの内容は、開発環境外では読み取ったり作成したりすることはできません。2つのプロジェクトバージョンを比較しても目立った違いはなく、2つのエディタが異なるオブジェクトを変更する際に既に競合が発生します。
インストール後CODESYS File-Based StorageアドオンCODESYS 3ファイルベースのストレージ形式が提供され、これはストレージ形式と互換性があります。CODESYS 4ファイルベースのフォーマットの変換を可能にします。CODESYS 4バイナリ形式に変換CODESYS 3そしてまた戻る。
でCODESYS 4プロジェクトはオープンなファイルベースの形式で管理されます。すべてのオブジェクトはそれぞれ独自のテキストファイルに保存され、プロジェクト構造はファイルシステム内のフォルダ構造となります。オブジェクトマネージャは存在しません。
これによって、以下のような利点が得られます。
オブジェクトは任意のテキストエディタで読み込み、必要に応じて編集できます。
2つのプロジェクト状態を比較すると、プレーンテキストでコンテンツの変更点が表示されます。
異なるオブジェクトへの変更は互いに競合しません。
プロジェクトは、Git、SVN、Mercurialなどのバージョン管理システムで管理されます。プロジェクトアーカイブはCODESYS 3このため、不要です。
バージョン管理システムのWebポータルで変更内容を確認できるため、マージリクエスト、プルリクエスト、コードレビューといった、バージョン管理システムの通常のプロセスを利用できます。
詳細については、以下を参照してください。ワークスペースとファイルの種類
ソースコードと生成されたファイル
プロジェクトフォルダ内のすべてがソーステキストに属するわけではありません。オブジェクトファイルに加えて、CODESYS 4また、一時的な結果、解決済みのライブラリ、およびユーザー固有の設定も保存されます。これらのファイルは必要に応じて再生成されます。
フォルダ | 位置 | コンテンツ |
|---|---|---|
| では | コンテキストをコンパイルして参照する |
| では | 診断目的で作成された一時ファイル |
| では | パスが指定されていない場合は、オフラインブートアプリケーションが生成されます。 |
| トップレベル | 解決済みのコンパイル済みライブラリ |
| プロジェクトの最上位レベル | プロジェクト設定とユーザー設定 このディレクトリは、カスタムプロジェクト設定が初めて保存されたときにのみ作成されます。 |
| ワークスペースファイルと並行して | ワークスペースの設定とユーザー設定 |
一方、デバイス記述のキャッシュはプロジェクトに属します。デバイス記述はテキストファイルとして提供され、バージョン管理もされています。
文字セット、改行、インデント
2 つのプロジェクト バージョンの比較で、フォーマットの変更ではなくコンテンツの変更が表示されるようにするため、すべてのファイルは固定ルールに従って書き込まれます。CODESYS 4。
財産 | ルール |
|---|---|
IECソースコードおよびJSONファイル用の文字セット | BOMなしUTF-8(バイトオーダーマーク) ファイルには、使用されている文字エンコーディングに関する情報が最初は含まれていません。 |
XMLファイルの文字セット | UTF-8推奨 デバイスの説明などのインベントリファイルは、メタ宣言に従って読み込まれます。 |
書き込み中の改行 | LF(ラインフィード) |
読みながら改行 | LFとCRLF(キャリッジリターン ラインフィード) |
JSONファイルとXMLファイルのインデント | レベルごとにタブが1つ |
JSONオブジェクト内のエントリの順序 | 決定論的 |
ファイルは常にLF改行形式で保存されます(0x0A ) LFとCRLFの両方( 0x0D、0x0Aインポート中にサポートされます。これにより、ファイルが外部で変更された場合でも、読み取り可能な状態が維持されます。CODESYS 4 CRLF改行コードを使用するエディタを使用する場合。
バージョン管理システムにおけるプロジェクト
JSONオブジェクトにおける決定論的な順序とタブによるインデントは、同じ目的を持っています。つまり、変更されたオブジェクトは、内容が変更された箇所のみに差異を生じさせるということです。
オブジェクトファイル
プロジェクト構成ファイルなど
Libraries.jsonそしてProjectInfo.jsonLibraries.lock.jsonロックファイルワークスペースファイル
ソースコードから生成されたフォルダーとファイルはバージョン管理の対象外です。これらには一時データ、バイナリファイル、またはユーザー固有の設定が含まれます。他の開発環境も同様にこれを扱います。たとえば、C# プロジェクトでは、binそしてobjフォルダ。
以下のフォルダについては、除外設定はデフォルトであり、必須ではありません。バージョン管理システムでバイナリファイルが問題にならない場合は、これらのフォルダをバージョン管理システムに含めることができます。
バージョン管理から除外されるファイル:
.library-cache.user<workspace name>.fbsws.user
バージョン管理システムを設定して、ファイルがLF形式に変換されるようにします(ラインフィードチェックイン時に変更が反映され、チェックアウト時に変更が反映されない。Git では、以下の設定でこれを構成できます。
core.eol = lf core.autocrlf = false
各プロジェクトフォルダの除外設定を別のファイルに保存します。.gitignore拡張子、および別のファイルでの改行の設定.gitattributes拡張子。両方のファイルはバージョン管理されている必要があります。そうでない場合、ルールは機能しません。
ファイルの編集はCODESYS 4
プロジェクトのオブジェクトファイルはプレーンテキストです。必要に応じて、外部でファイルを編集できます。CODESYS 4例えば、マージの競合を解決する場合や、多くのオブジェクトに同じように影響を与える変更を行う場合などです。
ここでは、以下の条件を満たす必要があります。
この宣言は構文的に有効です。この宣言は、宣言を実装から分離するために使用されます。
文字セットはBOMなしのUTF-8のままです。
フォルダ構造はプロジェクト構造であるため、変更されません。
マージの競合を解決する際は、CODESYS 4後で結果を確認してくださいCODESYS 4 IDE。マージによって、プロジェクトで許可されていないオブジェクト間の関係が作成される場合があります。その例として、あるPOUが別のPOUの下位にある場合が挙げられます。
バージョン管理システムのファイルなど.gitignoreこれらはプロジェクトフォルダ内に配置されているため、ワークスペースナビゲーターにも表示されます。