【導入事例】三菱電機製PLC情報 可視化システムと、10年越しの振り返り2K2月10日読了時間: 4分はじめまして。株式会社アーチの「2K(にけ)」です。 社内では中堅プログラマーとして、日々コードと格闘しています。 記念すべき技術ブログの第一号記事担当に抜擢されました。 日記すら小学生の絵日記以来ご無沙汰で、ブログ執筆は人生初の試みです。 拙い文章かもしれませんが、どうか寛容な心でお付き合いいただければ幸いです。今回は、私がプログラマーとして入社して1年目、初めてメインで任されたジョブで、 現在も稼働中の「加工スケジュールの可視化」事例をもとに、技術的なアプローチと当時の気づきについてお話しします。当時は、通信ステータスの管理やフラグ制御の複雑さに翻弄され、通信断が発生した際の「自動復旧処理」の考慮漏れを指摘されるなど、まさに試行錯誤の連続でした。 技術的な未熟さを痛感し、てんてこ舞いだったことを覚えています。 しかし、このプロジェクトを通じて得た最大の学びは、プログラミング技術だけではありませんでした。「お客様と自分との間にある『イメージの乖離』をどう埋めるか」 「専門的な仕様を、いかにわかりやすい言葉で説明するか」 仕様を満たすコードを書くことと同じくらい、あるいはそれ以上に「対話」や「説明」が重要であると痛感した案件でもあります。どんなソフトウェアを作ったのか?今回ご紹介するのは、「加工機(PLC)の加工スケジュールを可視化し、周知するシステム」です。工場内の加工機には、三菱電機製のPLC(プログラマブルロジックコントローラ)が搭載されています。 このPLCが持っている「加工スケジュール情報」を外部から取得し、大型モニター等の別画面に分かりやすく表示させるのが目的でした。実現への技術的アプローチ主な実装内容は以下の通りです。実装のポイント通信方式: TCP/IP ソケット通信通信対象: 三菱電機製 PLC実装内容: 専用コマンドの生成および通信処理の実装具体的には、三菱電機製PLCの通信仕様(プロトコル)を調査し、必要な情報を引き出すためのコマンド送受信処理をスクラッチで実装しました。また、現場の環境変化に柔軟に対応できるよう、PLCへの接続先情報や通信パラメーターはハードコーディングせず、設定ファイルから読み込む仕様としました。実現への非技術的アプローチと生まれた命題冒頭にも触れさせておりますが、このプロジェクトは私が初めてメインで任されたジョブでした。 システムの構成から配慮すべきことも、通信における定石も知識が足りていない状態で臨んだため、独力では完成まで漕ぎつけることは難しかった思い出があります。ですが、諸先輩方に相談に乗ってもらい、時には自分が思いつかないようなテスト方法でバグの洗い出しをしてもらったりと助力を受けながら、完成へとたどり着くことができました。この時はまだ、社内で話しかけたことがなかった先輩社員の方もおり、質問する勇気を振り絞っていたのも懐かしい思い出です。お客様に対しては、メールでの文字での説明に始まり、仕様書などで画像を併せての説明、対面での説明と、とにかくお互いが同じものを見ていると確信できるまで幾重にもご説明させていただきました。自分が思っていることと、自分がした説明が必ずしも相手に100%伝わるとは限らない。ではどうするか。 どうやって説明すれば、お互いの認識に齟齬が生まれにくいか、齟齬が生まれた場合はどうやってフォローすべきか。 これは今でも私の命題となっています。導入後の成果このシステムを導入してから、早いもので10年が経過しました。 先日、メンテナンスのために納入先へお伺いした際も、トラブルなく元気に稼働している姿を見ることができました。エンジニアとして、自分が書いたコードが長期間にわたって現場の役に立ち続けているのを見るのは、何物にも代えがたい喜びです。おわりに技術ブログと言いつつ、最後は少しマインドセットの話になってしまいましたが、これこそが私のエンジニアとしての「原点」と言えるプロジェクトでした。今後も、技術的な知見はもちろん、開発現場ならではのリアルな空気感をお伝えできればと思います。 これからどうぞよろしくお願いいたします!
コメント