Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
みんなでやろう分散開発
Search
makitagawa243
March 30, 2025
630
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
みんなでやろう分散開発
makitagawa243
March 30, 2025
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
13k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
270
Abbi's Birthday
coloredviolet
3
8.5k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
How to build a perfect <img>
jonoalderson
1
5.8k
Technical Leadership for Architectural Decision Making
baasie
3
430
Believing is Seeing
oripsolob
1
160
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
250
Ethics towards AI in product and experience design
skipperchong
2
320
Transcript
みんなでやろう分散開発 第22回FA設備技術勉強会 in KYOTO 2025/3/30 第22回FA設備技術勉強会 in KYOTO 1
自己紹介 • 名前: • 所属:滋賀県のFA設備インテグレータ • 経歴:FA設備の制御設計18年目 • C++/C#でのPC制御、IT風味のOT畑 •
PLCは8年目 • 直近はソフトウェアPLCがメイン • ラズパイ、Arduino、M5Stackなどでもたまに遊んでいます 2 第22回FA設備技術勉強会 in KYOTO
PC制御からPLCの世界に入った時 隣のチームにふと聞いてみました。 Q:ソフトの管理はどうしてるんですか? A:こんな感じでサーバーに置いてるよ 4 第22回FA設備技術勉強会 in KYOTO • 共有サーバーに置いてあれば良いが、たまに担当者がローカルで隠し持っていたりする
フォルダ名管理で何がしんどいか • どれが本当に最新か、どれを触ればいいのか? • 関係者全員に聞きまわらないと判断できない • Aさんがデバッグ中に事務所でBさんが残件開発を進めたりする • 実体としては分散開発なので、お互いに差分展開が必要 •
報連相が漏れると装置に入れたソフトが先祖返りしてしまったり… 1人でやり切る案件は、さほど問題にならない 中規模以上で複数人が分担する場合、上記のすり合わせに労力を消費する これは辛い… →バージョン管理システムを使えば改善できないか?Git使ってみよう 5 第22回FA設備技術勉強会 in KYOTO
Git導入時の工夫 • いきなりフル機能を使わない • PLC一筋のチームに導入しようとしたので、Gitは聞いたこともないツー ルだしバージョン管理システムの概念自体が初めて • 操作を覚えるだけで大変なので、最初は決めごとを少なくして心理的な 抵抗を下げる •
おおざっぱに1人1ブランチを割り当てる、マージする人を固定する、など でまずは使い方に慣れることを優先 9 第22回FA設備技術勉強会 in KYOTO
Gitを使って感じたメリット • pushさえしておけばバックアップが勝手に取れる。PCが突然クラッシュしても大丈夫。(基本的 には)勝手に誰かに上書きされることもない 10 第22回FA設備技術勉強会 in KYOTO • ネットが繋がらない現場でもコミットして、デバッグ中の
途中経過が残せる • いつでも好きな時点のソフトに戻せる。こまめに自分で バックアップしなくてよい • 誰がいつ何を触ったか視覚的に分かるので、チーム内の 情報共有に手間がかからない
Git導入でしんどいところ • Gitの使い方自体がそもそもややこしい。間接ツールなのに学習コスト は比較的高い、今すぐ目の前のことに対応したいFAの現場的には辛い • 特にIT系の経験がないPLCエンジニアにはハードルが高い • 並行開発した後のマージはそれなりに大変 • ハードウェアPLCではほとんどバイナリファイル、Gitの良さが活かしにくい
• 各社の開発環境でマージ機能がサポートされてきているので、かなり楽になってはいる • ソフトウェアPLCではXMLなどのテキストベースが多いので幾分マシ • が、マージツールの使い勝手があと一歩 11 第22回FA設備技術勉強会 in KYOTO
PLCでのGit運用 三菱(Qシリーズ、GxWorks2) • プロジェクト同士を照合して差分は見ることができる(これはGit関係なく元からの機能) • が、変数、FB/FUNを使うと、照合機能がほぼ意味をなさなくなる • FB/FUN内の差分が、配置しているプログラム単位でしか見えない。さらにプログラム単位の差分は アドレス表示 •
仕方がないので、変更点をExcelなどに漏れなく書き出して人力・目視でマージしていた • iQ-R(GxWorks3)では上記のやりにくさはほぼ解決されており、マージもできて快適 OMRON(NJ/NX、Sysmac Studio) • 開発環境で照合からそのままマージできるのはとてもよい • 差分照合が変数のまま出来るのもとてもよい • 変更点Excel作りから解放され、照合比較するだけでよいのでストレスがかなり低減 • GitをSysmac Studioから直接使うためには、オプションライセンスの購入が必要。確か人数制限も あった • 結局別ツールで操作した 12 第22回FA設備技術勉強会 in KYOTO メーカーごとの開発者体験まとめ
PLCでのGit運用 CODESYS • 開発環境から直接比較・マージできてストレス無し • こちらも開発環境からGit操作するにはオプションライセンスが必要(残念) • マージ機能は一番優秀かも • HMIも視覚的に差分が表示され、部品のプロパティ単位でマージ可能
TwinCAT • Visual Studioベースなので、Gitを直接操作できる。これは大変うれしい • マージは開発環境と別ツールを起動する必要があり、面倒 • モーション周りのパラメータ、リアルタイム設定などは差分が出ずマージし てくれない部分がありハマるときがある 13 第22回FA設備技術勉強会 in KYOTO メーカーごとの開発者体験まとめ
まとめ • 複数人、長期間のプロジェクトではバージョン管理システムのメリットが大きい • 組織内での統制を取るのが楽になる • 単発モノは手間や学習コストの方が大きいので無視してもよさそう • PLCメーカー側でも開発環境に関する意識が変わることを期待 •
並行/分散開発を意識していないわけではないが、実運用との乖離が大きいような… • ITの人間をFAに引き込んでいくとバージョン管理システムの適用は自ずと増えていくはず • 文化の違いを認識しないとうまく行かない • FAの現場にあった使い方にアレンジしたほうがスムーズ、運用設計が大事 • バージョン管理が普及した延長線上に、CI/CDなどの手法がある • 実用レベルで取り込んでいけると開発者がもっと楽になるのでは 14 第22回FA設備技術勉強会 in KYOTO
15 第22回FA設備技術勉強会 in KYOTO ご清聴ありがとうございました