Skip to content

Masafuro/PS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Software Sequencer フレームワーク

概要

本プロジェクトは、Pythonを用いてPLC(シーケンサー)のような定周期スキャンと非同期処理を両立させるための制御フレームワークです。メインの制御ロジック(同期実行)と通信・I/O(非同期実行)を安全に分離し、データ整合性をシステムレベルで自動管理します。

実行フェーズの構成

プログラムは役割に応じて src/ フォルダ直下の4つのディレクトリに分割して配置します。各ディレクトリ内のスクリプトは**ファイル名の昇順(アルファベット・数字順)**で順番に実行されます。

起動コマンド: python main/sequencer.py

  1. 0_setup: システム起動時に一度だけ実行される初期化フェーズ。
  2. 3_keep: メインループとは独立して非同期に常駐実行されるタスク(通信・GUI等)。
  3. 1_loop: 指定されたサイクル時間(100ms等)ごとに繰り返し実行される制御フェーズ。
  4. 2_teardown: プログラム終了時に一度だけ実行される安全停止処理フェーズ。

クイックスタート

  1. src/common/variables.yaml を編集し、共有変数を定義します。
  2. 各フェーズのディレクトリ(0_setup3_keep)に Python スクリプトを配置します。
  3. python main/sequencer.py を実行してシステムを開始します。

技術詳細・リファレンス

本フレームワークの核となる変数管理の仕組みや、具体的な実装方法については以下のドキュメントを参照してください。

■ 変数ドメインの仕様と権限

変数の「所有権」や「隔離メカニズム」、および各フェーズの権限マトリクスについて詳しく解説しています。

■ 実装サンプルコード

各フェーズでの変数の読み書き方法や、保護機能がどのように働くかの具体例を掲載しています。

運用上の注意点

  • 所有権の遵守: loop 領域は 1_loop で、keep 領域は 3_keep で更新するのが基本原則です。
  • master_var の制限: 初期化やデバッグ用の強力な権限を持ちますが、いかなる権限であっても system 領域(システムの憲法)を書き換えることはできません。

About

Python Sequencer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages