top of page
カテゴリ
タグ
アーカイブ

Tech Blog/技術ブログ
当社のソフトウェアの裏側にあるテクノロジーや、開発チームが活用している技術情報について深く掘り下げて解説します。


変数定義によるデータ消失
株式会社アーチのN-Sです。 PLCのラダープログラムを作成する際、昔ながらの「デバイスアドレス(D100など)」を直接指定する方法から、最近主流の「変数(タグ)管理」に移行した方も多いのではないでしょうか。 名前で管理できるので非常に便利な変数機能ですが、「ある仕様」を正しく理解できていないことで、トラブルとなることがあります。 今回は、実際に経験した「変数定義の失敗談」をお話しします。 どんなトラブル内容? ある設備のプログラムを改修し、現地で変更作業を行いました。それなりの規模の改修ではあるものの既存の変数定義をそのまま流用できる作業のため簡単なものでした。 変更作業が完了したところ、PLC内で保持(リテイン)されているはずのメモリ情報が化ける、初期化されているなど不具合が見つかりました。 原因:変数の「保持領域」指定時の「自動割り付け」 原因は、ラダープログラムで変数を定義する際、「保持領域(リテイン領域)のアドレスを明示的に指定せず、PLCの自動割り付けに任せていたこと」でした。 一般的なPLCで変数を使用する場合、手動で特定のアド

N-S
8月25日


C#でOS標準搭載のAPIを呼び出してみる
こんにちは、レイです。 早いもので入社してもうすぐ一年が経ちます。まだまだ慣れないことが多いですが、先輩方に教えてもらいながら日々業務に取り組んでいます。 先日、とある案件で Web カメラの映像を画面に表示するソフトを WPF で作る機会がありました。 今まではこういうとき OpenCV などの外部ライブラリを使っていたのですが、Windows 標準のカメラアプリでも同じことができるわけだし、外部ライブラリを追加せずにできないかなと調べたところ、WinRT という OS 標準機能を呼べば良さそうだったので試してみました。 1. .csproj を書き換える プロジェクト作成後、.csproj をメモ帳で開いて <TargetFramework> を次のように修正します。 WinRTが搭載されはじめたバージョンを明記することで、Windows.* の API がそのまま using できるようになります。ただし、ここで指定したバージョンより古い OS では動かなくなるので注意してください。 2. 画面(XAML) Image を 1 つ置きます。

レイ
8月11日


インターンシップ リアクションボードの試作
株式会社アーチのトミーです。弊社では数年前からインターンシップを実施しています。 今夏のインターンシップでは、自分が担当講師の一人として課題の進め方、プログラムの内容を教えさせていただきます。課題は以下の3つの中から1つを選択し、体験していただけます。 「高精度計測のロジックを構築する!C#とPLCによる『反射神経測定システム』の開発」 【IoT入門】ビジュアルプログラミングで操る!「Raspberry Pi × IoT制御」 【システム構築】街の安全を守るロジック!「USB-IOで作る信号機制御」 今回のブログでは課題の1つである 【開発実録:C#とPLCを連携させた「反射神経測定システム」の構築プロセス】 の試作を行いましたので、その内容を紹介します。 課題の目的 PLCのI/O活用 PLC内レジスタの理解 ラダープログラムの作成 高精度タイマーの使用 PC・PLC間のデータ通信 実際に測定した時の動画 開発環境 Visual Studio 2026 (C#) GX Works3 (PLC) 使用するPLC 機種:FX5U-32MR/ES

トミー
7月17日


拡張性ばっちり!Wi-FiとMQTTを活用した「後付けIoT通報システム」のご紹介
こんにちは。株式会社アーチ 2K(にけ)です。 工場や倉庫、広い施設などの現場において、「現場から事務所へ、ボタン一つですぐに状況を知らせたい」というニーズは非常に多くあります。しかし、いざシステムを導入しようとすると、長いケーブルの配線工事が必要になったり、大掛かりな設置作業でコストが膨らんでしまったりと、ハードルが高いのが実情です。 今回は、現場の課題を解決するために弊社で考案・提案したシステム「配線不要で簡単にポン付けできる通報システム」の構成事例をご紹介します。 システムの概要 本システムは、現場に設置する「自作の通報ボタン(発信機)」と、通知を受け取りたい事務所などに設置する「受信機」の2つの筐体から構成される、シンプルかつ拡張性の高いIoTシステムです。 1. 既存のWi-Fi活用&マグネット設置で「配線工事ゼロ」 最大の特長は、導入にあたって大掛かりな工事が一切不要である点です。 現場に設置する発信機にはWi-Fiモジュールを搭載しており、お客様の環境にすでに整備されている自社無線LANにそのまま参加させることができます。そのため、

2K
7月7日


「字が小せぇ!」と言われないために——現場の『何か違う』を防ぐコミュニケーション術
こんにちは、キタさんです。 私、工場や生産現場をサポートするシステム、ソフトをよく作らせてもらっております。 さて、世の中には「お互いの認識のズレ」から生まれるトラブルが絶えません。「夕飯は適当でいいよ」と言われたから素麺を出したら、「もっとガッツリしたものが良かった」と文句を言われる。皆様も一度はご経験があるんじゃないでしょうか。 実はこれ、私どものシステム開発の世界でも日常茶飯事でして。特に設計段階の「仕様」や「画面イメージ」の認識というのは、まぁ見事にすれ違うのでございます。 本日は、そんな「仕様共有の難しさ」について私が大事にしていることを、実際の体験も交えながら少しお話しさせていただこうかと思います。 「良い画面」とは? 余白はいらない、とにかくデカく! 私のような開発の人間というのは、どうも「スタイリッシュで美しい画面」を作りたがる傾向にあります。今風のフラットデザインで、余白をたっぷりとって、文字は控えめなグレーで……なんて悦に入って設計書をお客様に見せるわけです。 ところが、実際に現場でシステムを使う方々に見せると、こう言われます

キタさん
6月23日


音声データをPythonの音声認識モデルを使用して文字起こし
こんにちは、あどりらです。 社内学習にてAIを学ぶきっかけがあり、何から学んでみるかと考えたときに、最初に目についたものが音声の文字起こしでした。 当時社内で会議における議事録作成の負担軽減を目的として、音声録音および変換ツールの導入を検討する意見が挙がっておりました。 そのような折、自作での構築が可能であれば非常に有用であると考え、「文字起こし」に関心を抱きました。 オープンソースとして公開されている複数のモデルを調査したところ、その中でも特に導入の障壁が低いと考えられた「Whisper」を採用し、構築を試みることにいたしました。 これはその時の備忘録です。 開発環境 開発言語:Python 開発エディタ:Visual Studio Code 仕様ライブラリ:whisper Pythonのインストール 公式HPからインストーラーをダウンロードしてください。 Releaseの最新バージョンのDownloadを選択します。 Windowsの64bit版をダウンロードします。 インストーラーをダブルクリックしてインストールを開始します。 「Add p

あどりら
6月9日


C#×RS-232C通信の振り返りと非同期処理について
はじめに こんにちは!【さん】です。 今回ブログを書くにあたり、数年前に開発した計測機器の検査ソフトのコードを読み返し、その時のことを備忘録として残そうと思います。 入社間もない頃、「RS-232C(シリアル通信)」という、弊社では最近触れる機会が少なくなった通信規格と格闘していました 。 改めて当時を振り返ると、泥臭く安定化させた「過去の実装」と、今だからこそ見える「これからの課題」が浮き彫りになってきました。 過去の自分が行った「通信安定化」の工夫 RS-232Cは、モダンな通信規格に比べると非常にシンプルですが、その分「データの受け取り方」に一工夫必要です。 私が実装の中で特に意識した、安定化のためのポイントを紹介します。 1. 受信完了まで「粘り強く待つ」リトライ構造 シリアル通信では、一度の読み込みで全てのデータが取得できるとは限りません。 そのため、受信バッファが空だったとしてもすぐに処理を諦めず、わずかな待機時間を設けて再確認する構造にしました 。 2. 徹底したバッファ管理 シリアル通信のバッファには、ノイズや前回通信の読み残しが

さん
5月26日


工程管理:スプレッドシートによる柔軟なシステム構築
こんにちはM.Oです。ブログ等を書くことがないため、いろいろおかしいところがあるかもしれませんが、優しく見守ってください。 さて、家では2匹の猫(姉妹)を飼っていますが、妹猫をワクチンのため病院に連れて行って帰ると、姉猫が妹猫に近づいてシャーっと何度も威嚇します。病院の匂いか、獣医さんの匂いがついているのか、気に入らないようです・・・ 妹猫もイヤイヤ行ってるのだから、もうちょっと優しく迎えてほしいところです。 と、関係のない話をしたところで、本題に入りたいと思います。 はじめに エンジニアとしてコードをガリガリ書く日々に、突然「管理」というミッションが加わったとき、皆さんはどう感じますか?「もっと効率化できるはずだ」「ツールを使えば一発だろう」……。私もそう思っていました。 先日、社内の工程管理を任されることになったのですが、そこで直面したのは「ツールの理想と現場の現実」のギャップでした。 今回は、エンジニアである私が、紆余曲折を経て辿り着いた「Googleスプレッドシートによる柔軟な工程管理システム」の構築記録を共有します。 1....

M.O
5月12日


MediaPipeを使用した手指検出
皆さん、はじめまして。プログラマーのCTです。 日々の業務に打ち込んでいるうちに、気づけば入社からそろそろ2年が経とうとしています。 この2年を振り返ると、最初は右も左も分からなかった状態から、少しずつ仕事を任せてもらえることや自力で解決できることが増えてきた実感があります。 とはいえ、学べば学ぶほど『まだまだ知らないことだらけだな』と痛感する毎日でもあります。 日々勉強中ではありますが、今回はそんな中でAI勉強会で使用したMediaPipeについて紹介できればと思います。 MediaPipeとは MediaPipeは、Googleが開発したオープンソースの機械学習フレームワークで、リアルタイムの映像・音声処理に特化しています。特に、人間の姿勢推定、顔認識、手の検出などのコンピュータビジョンタスクを、高速かつ高精度に実行できることが特徴です。 今回のアプリケーションでは、MediaPipeのHand Landmarker機能を使用しています。この機能により、カメラに映った手の21個の主要な点(指の関節や手のひらの位置)を3次元座標として検出します

CT
4月28日


WPFのFluentテーマでCheckBoxの幅が固定されてしまう問題と、その独自カスタマイズによる解決方法
こんにちは、株式会社アーチのT.Tです。 WPF (Windows Presentation Foundation) でモダンなUIを構築する際、.NETが提供する Fluentテーマ (PresentationFramework.Fluent) は、手軽に洗練された見た目を取り入れられるため非常に便利です。私自身、最近のプロジェクトでこのテーマを採用する機会が増えており、その恩恵を大いに受けています。 しかし実務で使い込んでいくと、その便利さの反面「かゆいところに手が届かない」といった細かなレイアウトの壁にぶつかることも少なくありません。例えば、「デフォルトの CheckBox の幅が固定されていて、思うように配置できない」と悩んだことはありませんか? 今回は、私の実体験から得た知見をもとに、この問題の背景と、GitHubで公開されている公式ソースコードを活用して独自にカスタマイズし、スマートに解決する方法について解説します。 CheckBoxの変更前、変更後のイメージ 1. 問題の背景:CheckBoxの幅が固定されてしまう WPFのFlue

T.T
4月14日
最新記事








bottom of page