Skip to main content

ファイルベースのストレージ

で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また、一時的な結果、解決済みのライブラリ、およびユーザー固有の設定も保存されます。これらのファイルは必要に応じて再生成されます。

フォルダ

位置

コンテンツ

.compileContexts

では<application name>.iecapp^フォルダ

コンテキストをコンパイルして参照する

.intermediate

では<application name>.iecapp^フォルダ

診断目的で作成された一時ファイル

.bootapp

では<application name>.iecapp^フォルダ

パスが指定されていない場合は、オフラインブートアプリケーションが生成されます。

.library-cache

トップレベル.fbsdev そして.fbslib

解決済みのコンパイル済みライブラリ

*.user

プロジェクトの最上位レベル

プロジェクト設定とユーザー設定

このディレクトリは、カスタムプロジェクト設定が初めて保存されたときにのみ作成されます。

<workspace name>.fbsws.user

ワークスペースファイルと並行して

ワークスペースの設定とユーザー設定

一方、デバイス記述のキャッシュはプロジェクトに属します。デバイス記述はテキストファイルとして提供され、バージョン管理もされています。

文字セット、改行、インデント

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.json

  • Libraries.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これらはプロジェクトフォルダ内に配置されているため、ワークスペースナビゲーターにも表示されます。