「サイト公開」の裏側をPLCエンジニア目線で読み解く——Markdown執筆からデプロイまでの全工程
目次
このブログを開設したとき、「Hugo」「GitHub」「Cloudflare Pages」という言葉が画面に並んでいました。
何をやっているのかわからないまま、とにかく手を動かしていました。
後から振り返ると、この一連の流れは制御システムのエンジニアリング作業と構造がほぼ同じでした。最初からその視点で整理されていれば、あの手探りの時間は半分以下だったと思います。
この記事では、ブログ記事を書いてから公開されるまでの全工程を、PLCのプログラム更新作業に置き換えて解説します。
全工程の対応表
まず全体像を見てください。
| 手順 | Web制作の工程 | 制御システムのワークフロー |
|---|---|---|
| 1 | Markdown執筆 | ラダー図・ST言語の編集 |
| 2 | Hugoビルド | コンパイル(一括変換) |
| 3 | GitHubへPush | 管理サーバーへのプロジェクト保存 |
| 4 | Cloudflareのデプロイ | PLCへの一括書き込み |
| 5 | 世界中からアクセス | SCADA・外部モニタリング接続 |
以降、各工程を順番に掘り下げます。
手順1:Markdown執筆——ラダー図・ST言語の編集
GX Works2を起動してラダー図を書く、あの作業です。
エンジニアリング端末(PC)の上で、制御ロジックを記述・修正する。この段階ではまだ実機には何も起きていません。ファイルはローカルにあるだけで、PLCはひとつ前のプログラムで動き続けています。
Webの世界でも同じです。Markdownで記事を書いている間、サイトは何も変わっていません。テキストエディタの中にだけ、新しいコンテンツが存在しています。
Markdownとは、## で見出しを作り、**太字** で強調するといった、シンプルな記法でドキュメントを書くための書式です。HTMLを直接書く必要がなく、文章の構造だけに集中できます。
補足:「静的サイト」と「動的サイト」の違い
Webサイトには大きく2種類あります。この違いを知っておくと、なぜHugoを選んだのかが腑に落ちます。
動的サイト(WordPressなど) は、アクセスのたびにサーバー側でページを生成して返します。PLCプログラムに例えると、入力信号を読んでそのつど出力を演算する——通常のシーケンス制御の動作です。条件次第で出力が変わるため柔軟ですが、サーバーに処理負荷がかかり、維持費も発生します。
静的サイト(Hugo) は、あらかじめ完成したHTMLファイルをそのまま返すだけです。有接点リレーで組んだ回路に例えると分かりやすい。配線が決まれば毎回同じ動作をする。演算も判断もしない。その分、表示が速く・壊れにくく・維持費がかからない。
ブログのように「毎回同じページを表示するだけでいい」用途なら、静的サイトで十分です。むしろその方が優れています。
手順2:Hugoビルド——コンパイル(一括変換)
ラダー図やST言語で書かれたプログラムは、人間には読みやすくてもPLCのCPUはそのままでは実行できません。GX Works2がコンパイルして、CPUが解釈できるバイナリ命令に変換します。
Hugoの役割はこれと同じです。
Markdownで書かれたファイルは、ブラウザがそのまま表示することができません。Hugoがhugo --minifyコマンド一発で**HTMLファイルに一括変換(ビルド)**します。この変換によって、ブラウザが読める形式のファイル群がpublic/フォルダに生成されます。
コンパイルが完了して初めて「書き込める状態」になる——その感覚と完全に一致します。
手順3:GitHubへPush——管理サーバーへのプロジェクト保存
PLCのプログラムを修正したとき、エンジニアリングツールのプロジェクトファイルを構成管理サーバーに保存しますね。「誰が・いつ・どこを変えたか」を記録しておくための、バックアップ兼マスター保管庫です。
GitHubはこれに相当します。
git pushというコマンドを実行すると、ローカルのファイル変更履歴がGitHub上のリポジトリ(プロジェクトの保管場所)に転送・登録されます。変更前の状態はすべて履歴として残るため、誤って記事を壊しても以前のバージョンに戻すことができます。
PLCプロジェクトのバックアップと違うのは、変更の差分が行単位で記録される点です。「3行目を書き換えた」「この段落を追加した」という単位で、いつでも見返すことができます。
手順4:Cloudflare Pagesのデプロイ——PLCへの一括書き込み
GitHubへのPushを検知して、Cloudflare Pagesが自動的に動き出します。
「管理サーバーの更新を検知して、現場のPLCに自動で一括書き込みを実行する」——まさにこの動作です。手動でトリガーを引く必要はありません。Pushした瞬間に連携が走り、数分以内に世界中のCloudflareサーバーへ最新ファイルが配信されます。
ここで重要なのは、この更新フローが**「オフラインエディット→コンパイル→一括書き込み」という手順を自動で保証している**点です。
PLCの現場でオンラインエディットを多用するとリスクがあります。変更履歴が残りにくく、コンパイルを経ない直接書き換えはヒューマンエラーの温床になります。
このWebのデプロイフローにはその心配がありません。Markdownを書く→Hugoでビルドする→GitHubにPushする→Cloudflareが反映する、という順序が崩れる余地がなく、安全な一括更新ラインとして自動化されています。
手順5:世界中からアクセス——SCADA・外部モニタリング接続
PLCへの書き込みが完了し、ラインがRUN状態になりました。HMIや上位のSCADAシステムから、いつでも最新のロジックで動く設備を監視・操作できる状態です。
Webも同じです。デプロイが完了した瞬間から、世界中のどこからでもブラウザで記事にアクセスできるようになります。URLを知っている人全員が「閲覧者(オペレーター)」として、最新のコンテンツを参照できる状態になります。
まとめ:用語対応表
| Web用語 | 制御システムの対応概念 | 技術的な役割 |
|---|---|---|
| 静的サイト | 有接点リレー回路 | 配線固定・毎回同じ出力・高速・低コスト |
| 動的サイト | PLCシーケンス制御 | 入力次第で出力が変わる・柔軟だが負荷あり |
| Markdown | ラダー図・ST言語 | 人間が書きやすい記述形式 |
| Hugo | コンパイラ(GX Works2等) | 人間向け→機械向けへの一括変換 |
| GitHub | 構成管理サーバー | バージョン管理・マスター保管庫 |
| Cloudflare Pages | 現場PLCユニット | 最新データを受け取り外部に応答 |
| デプロイ | 一括書き込み・据え付け | 変更を本番環境に反映する操作 |
| ブラウザアクセス | SCADA・HMI接続 | 外部から最新状態を参照できる状態 |
おわりに
このブログ自体が、この流れで動いています。
私が記事を書いてGitHubにPushすると、Cloudflare Pagesが自動でビルドして公開する——という一連の工程を、最初は何もわからないまま手探りで構築しました。
PLCエンジニアとしての感覚で整理し直したのは、実はかなり後になってからです。最初からこの視点があれば、もっと早く全体像が掴めたはずです。
第2回では、GitHubを深掘りしています。「バージョン管理とは何か」を、設備の改造履歴台帳に例えて整理しました。合わせて読むと、Markdownを書いてからサイトが公開されるまでの全工程が一本の線でつながります。
Error: ページが見つかりません (/posts/20260501-github-for-plc-engineers)
筆者:TKappy
関西在住の現役生産技術エンジニア。現場のトラブル対応からITスキルの活用まで、実体験に基づいた技術情報を発信中。 詳しく見る