1. 高橋クリスのFA_RADIO
  2. #26 FAのソフトにユニットテス..
2024-10-24 27:50

#26 FAのソフトにユニットテストって必要ですか? FA_RADIO5-5

トークテーマ

・工場自動化のソフトウェアにユニットテストっていると思いますか?

00:00
じゃあ、次はちょっと真面目な話しましょうか。私の質問でいいですか?
いいですよ。
じゃあ、私からの質問です。FAのPSプログラムとかユニットテストが必要なのか?
必要かどうかっていう議論より、不要かどうかって話をした時に、不要って言えます?
そうだね、これはたぶんいるだろうなと思ったんですよ。
だから、いるのは自明ですよね。
どういうことですか?
いるのは当たり前じゃないですか。
当たり前だと思いますね。
ただ、やるのが大変なことが今問題なんですよね。
このIEC準時スタートプログラムでどうやってユニットテストをやるのか、たぶんまだ議論というか、どうすべきか。
そもそもちょっとユニットテストの話をするんですけど、ユニットテストはソフトウェア開発におけるテストの手法ですね。
聞きたい通りに作ったプログラムの、聞きたい通りに動けるかどうかを検証するためのユニットテストになりますね。
このテストはだいたい関数とかメソッドとかで全部の細かく切り分けて、各部品もちゃんと動けるかどうか。
思う通りに動けるかどうかを確認して、コードの品質をアップさせるとか、バックを早めに発見できるのの手法です。
それは簡単なユニットテストはこんなイメージですね。
なのでFAも絶対いるんじゃないかなと思ったんですけど、
でもこれやるのはどうすればいいのか、どこから着手すればいいのか。
明確で、たぶんまだすごいスタートの考えがいるんだなと思ったんですね。
高谷さんはどう思いますか?
まずユニットテストをやれる環境に今ないじゃないですか。
そうですね。私が知っているのは、ツインキャットだけはファーサードパーティーは用意している。
ツインキャットはいわゆるエクスユニットテストの話だと思うんですけど、
あれも別にユニットテストをするための環境が整っているだけで、実質ユニットテストをするのはかなり難しいと思うんですよね。
そうですね。難しい?
難しいというか、まずデバイスの応答が返ってこないじゃないですか。
だからユニットテストに何か状態を投げたとしても判別できない、シミュレーションができないから。
03:01
これを一緒に、デジタルツインとか一緒にいろいろ感が届いて一緒にやらないといけない。
そのレベルがやっぱり必要ですよね。そのデバイスのエミュレーション、シミュレーションができる環境がまずないと。
今やれるのは本当にファンクション、ユーザーが作っているファンクションとか、たとえば1たす1はっていうのが返ってくる関数だとか、
そういうものは当然できるでしょうけど、IPC内で完結するようなことは。
そこから1個何か通信Ioを閉じて外に出てしまうと、やっぱりそこをテストする術が今のところない。
なるほどね。
これいつどのエミュレーションで返すか、同じ結果出るかどうかのチェックは、そもそもこの信号をどうやって紐を作ればいいのか。
そうですね。
そういうフィットバックがまだ分からない、整えないということですかね。
そうですね。だから結局今やれるのはサーボモーターだけ。
サーボモーターは各PLCだとかIPCのシミュレーターっていうものがあるので、それに関してはやれるでしょうね。
はい。
だから今のところは本当に簡単なサーボモーションに限る。
はい。でもこれはたとえば全体のラインまでやるとかなり話は遠くなるっていうんですよね。
遠くなるというか、ユニットテストをやる以前にテストをする環境がないなっていう。
そうですね。そもそもテストできる環境もないんですよね。
まずはやっぱりシミュレーション環境ですよね。そこがちゃんとできるかどうかですね。
だって別に手動でテストしてもいいわけじゃないですか。
はい。
手動テストだと抜け漏れだとか、いろんなことが問題があるからユニットテストっていう考え方とかプラットフォーム、データフレーム、フレームワークっていうのは必要になってくる。
はい。
だからその前段階がちょっとやっぱり足りない。
そうですね。フォーラムとか見て、まあたとえば結構ファードパーティーでユニットテストをやってもまだ関数レベルで止まっちゃったなあですね。
そうですね。
関数はだけテストしてもまだ意味があるんですけど、ちょっとそこまでノルをかけてやりますという。
そうですね。だから関数レベルって、要はFAってそんな、なんていうんですかね、めっちゃ関数いっぱい作ったりしないんですよね。
使ってるコアの関数あるじゃないですか。
あるけど、そうそう。でも数が少ないじゃないですか。
少ない。
少ないですね。だからそのユニットテストで別に管理をするほど、そんな大きなものはないんですよ。
あったほうがいいのは間違いないけど、なかったりないかっていうと別にそんなことはないんですよね、現状で言うと。
ああ、なるほどね。
関数だけターゲットしちゃうとね。
06:00
なるほど。でも先端ラインだったらまださっき関係ないし。
設備もそうだし、センサーとかもそうだし、もう少し大きい枠組みでやれるようになると、もっと生きてくるんでしょうね。
結局テストシステムってスケールしないとやっぱり効果薄いじゃないですか。
はい。
1個だけ、じゃあこの関数だけテストしますっていうことでやっても、そんな人がやっても変わらないじゃんってなるけど、
ハローだったらどうですか、1000個だったらどうですか、1年だったらどうですか、2年だったらどうですかって言ったら全然違いますよね。
それは単純に100倍とか1000倍とかいうレベルじゃなくて、もっと指数関数的に構成がかかるはずです。
だからやっぱりどうしてもこういうシステム系だとか開発環境っていうのはスケールさせないとうまみが少ないでしょうね。
なるほど。スケーリングがないとうまみが少ない。
そうですね。で、スケーリングさせるには関数だけテストできてもスケールしないでしょうね。
そうです。どんだけ関数テストしても関数はただ関数でしょっていうことですよね。
そうですね。関数が1000とか2000とかあるんだったらそれは効果ありますけど、現実にユーザーが使う関数は1000も2000もないわけですね。
そうですよね。
有罪30か40とかそんなわけですよ。やっぱ少ないですね。
そういう関数を組み立ててLINEを作ってるから、このプログラムはテストできる環境がないから、この関数の結果だけ正しいでも意味がない。
意味がないというか効果が少ない。
効果が薄いですよね。
効果が少ないんじゃないかなと僕は今のところ思っています。
必要だし、今後の開発にはそういう環境を持つことが確実であるんだけど、今の技術レベルでやるとちょっとイマイチですねっていう。
そうですね。これは前この間田川さん出たデジタルツインはどこまでやるべきかというトークになったじゃないですか。
名前、ラジオネームまだ覚えてる?まあいいや。
これを田川さんのときは極形まではやるって答えが。
でもこういう極形までやるってことはこういうユニットテストとかもできるようになるんですね。
そうですね。そういう見込みがあるからやるべきでしょうと。
これがまだタンダルストローションを出して、これはモードリングしなきゃいけないと田川さんも言ったんですけど、
このモードリングも今まだどこまでできるか、これはこのデジタルツインがどこまで極形までいけるとつながる。
この極形までいける、理想論ですけど、完璧の状態のモデルを定義して、
09:07
このモデルがあるからこそユニットテストができるんですよね。
そうですね。だから言いたいこととしては、今の断面ですね。今この瞬間に入れようとすると、
まあいいものはないですよねっていうのが今の時点ですけど、将来的にはやらないといけないから、
やるべきではあるってことですね。
今全展開まだ多分いかんだろうと思いますけど、開発レベルだとか、
試しレベル、もしくは開発、研究はやるべきだと。
次の道はどうやって実装を実現するためには、今いろいろな施策とか新作のほうがいいんだと。
これ今メーカーで高橋さんに何かいい提案とか持ってるんですか?
何かいいアイディアとか持ってるんですか?
まあでもやっぱりさっき言ったように結局シミュレーション環境が出ないってどうしようもないんで、
そこをやっぱり今話をするっていう感じですかね。
モデリングがしっかりやらないといけないんですよね。
今モデリングをするっていうのは本当に1から10までモデリングをしないといけないわけですよね。
それを支援するツールがないんですよ今。
今100時間かかりますけどこのツールを使ったらこんな5時間でいけますよみたいな支援ツールが今ないんですよね、モデリングに関する。
なるほど。
そこが課題かと思いますね。
今の実はツインがただの3Dアニメーションに止まることが結構多いように見えるかなと思って、
実際もうそうじゃないですね。アニメーションがアニメーションし、肝心なところをやらないとダメだよねと高橋さん言ったんですよね、前回も。
アニメーションはアニメーションで立派なモデルだと思いますけどね。
だからそれはそれで効果が出るじゃないですか。アニメーションだったらすごい嬉しいし、効果は出ますけど、ただそこで止まったらもったいないですねっていう。
次とか繋げていかないといかんですよと思います。
これなかなか面白い話、なかなか深い話ですね。
ユニットテストをこの話、レニーの方も聞いて、これからPICがユニットテストをやらないといけないと書いてる人もいるんですけど、
何ユニットテストですか、どういうことをやるんですかとか全然書いてないので、高橋さんこの話どう思うかなと聞きたくてですね。
でもなんというか、まずはユニットテストやらなあかんって言うだけでも価値はあるんじゃないですかね。
12:05
そうですね、言うだけでもまだ価値あるんですね。
言うだけでも価値はあると思うし、結局僕も自分の言ってることが正しいっていうのはあんまり自信ないですからね。
なるほど。でも自分の意見を持つのは大事ですよね、これ。意見がないと次のステップがないので、すごい大事だなと。
そのユニットテストに関しては結局IT系で前例があるし効果が出る、実績があるっていうのはやっぱり大きいですよね。
要は使いこなした先にそういう未来がちゃんと実績があるんですよっていうのはやっぱりかなり大きなことだと思います。
なるほど。私たちも頑張っているから、もうこれを使わないといけないんですよね、今後おそらく。
我々が現役世代の間にこれが実現するかどうかはわからないけど、そこに貢献はしたいですね、やっぱりね。
そうですね、なんかちょっとしたいですね。
この話もあって、昨日高橋さんと話したんですけど、ソフトウェアデファインオートメーションのところも昨日デモで話したんですよ、この人と一度。
ソフトウェアデファインオートメーションってどんな会社なんですか?
ソフトウェアデファインオートメーションってどういう会社かというと、
ウェーブベースでいろんなメーカーの、ほぼいわゆるヨーロッパメインですけど、
のPLCプロジェクトを一括集中管理できるようにする職を提供するソフトウェア会社ですね。
で、対応したのはSiemensさんとか、Cortisベースのものとか、ベックオフさんとか。
他はアップメインですけど、これは結構面白くて、
昨日はちょっと色々、カメラがちょっとすごく悪くてデモ見せなかったんですけど、今度また見せたら報告したいんですけど、
あとは自動的にバックアップとか、1G1回バックアップ取るとか、バックアップのファイルをクラウド上げるとか、
あとバージョン、ギフト話ですね、バージョンコントロール、
編集前、いくつ前のバージョンを戻したりとか、
あとは結構面白いのは、中のプログラムとかも、ラウダーでもSTでも全部見れるんですよ、企画できるし、
このネットワークが何が違うのか、同じのが全部見れるところが面白いんだなと思ったんですね。
で、これも前回のFAラジオでちょっと話した、結構、高谷さん的には結構いい会社、いいと感じた会社ですね。
15:01
そうですね。
僕2年前に行ったときに初めてそれを見つけたんですけど、感動しましたね。
そう、これ感動しましたね。
今、結構また色々進んで、このFactory Agent、さっき言った通りのグラフィックのコード、
でもそのままクラウド上で見せれる、プロジェクトで企画できるとか、
あと、今最近見たら、あそこも、皆さん今結構熱いの、生成AIも入って、
もう、このプログラム作ってって言ったら、 Siemensのプロジェクトにこのプログラム作ってって言ったら、
Siemensのフォーマット作ったり、コンテストのフォーマット作ったり、やってくれたんですね、今。
ただ、まさに前回の高谷さんが言った通りに、彼らそういうベース持ってるから、皆さんのプロジェクト、
自分手のビジネスあるから、そういうFA向けのフルオンの生成のモデルがよく反応できるようになったなと思ったんですね。
これはもう最近見つかったんですけど、そういう機能が付いてたと。
生成AIまでもやってると。
そうですね。
まあ、なんとか皆さん一回ググってみてください、ソフトウェアをDefined Automationで。
本当に面白いご会社、本当に面白い。
やっぱり一つの未来ですよね、あれは。
うん。
ただ、
これ必ず、
はい、どうぞ。
ただ、あれがビジネスとして成立するかどうかっていうのはまだまだこれからだと思いますけど。
そうだね。
まだネタもいくら万円、ネタオフィが大きいかなと思ったんですね、ここ。
安くはないと思います、これは。
そうですね。
あと、稼働している設備の管理なので、あれは。
あと、そもそもネットワークをつなげる前提なので、インターネットに。
そうだし、変更がないんだっていらないですよね。
はい、変更いらないのもいらないし。
いらないですよね。
あと、インターネットを自分の設備をつなげるのもいらないと、そもそもこれも論外だなと思ったんですね。
ムギーフムギーが結構激しいかなと思ったんです、これ。
だからやっぱりあれの難しいところは、ユーザーがどうやってそれだけの投資を回収するのかっていう道筋がちょっとつけづらいなというふうに思ってます。
なるほど。
例えばあれが開発というか設計だったら設計コースがどれだけ下がるとか言えますけど、あれって実際に稼働しているもののバージョン管理システムじゃないですか。
そうですね。
じゃあ稼働しているもののバージョン管理をしたときに、それはどれだけ儲かるんですか?
そうだね。ほぼ儲からない。
だから効果が薄いかもしれないですね、稼働しちゃったら。
18:02
そうですね。だから主張としては不具合が減るよってことを主張すると思うんですけど、
じゃあそれがあることによって起こらない不具合って何?っていうのを数字にしにくいですよね。
だってまだ起こってないんだから不具合。
わかんないものを数字にできないですよね。
例えば過去バージョン管理ができていないことによる不具合がこれだけあってっていうデータを持っていればいいですけど、そんなもんないですよね、普通に考えて。
バージョン管理をしなかったことによってこれは起きたんだっていう不具合を今明示的に数字で件数を表せるかっていうと、おそらく表すことがかなり難しい。
だいたい文字で文章で書いたしかないんですね。バージョン管理しか何に必要とかないんですよ。
だから彼らは今AIとか入れ始めてるわけですね、ネタがなさすぎて。
これだけはちょっと多分足りないなと思ったね、ネタが。
バージョン管理システムは素晴らしいものだし、絶対これから必要になるとは思うんですけど、どうやってお金にするかっていうのは相当難しいですね、あれ。
これ使って結局どれほどお金が生み出せるか、どれほどお金が節約できるかはわかんないっていうか。
この間も前回も言った気がするんですけど、あれのいいところの一つとしては、
PLCの構造を完全に把握してることを、どのPLCに何のプログラムが書いてあってっていうことをすべていわゆるデータ構造として理解する技術を持ってるってことなので、
その上に上手いアプリケーションを積むことができるんであれば、
何か大きな利益が生み出せる可能性はあるだろう。だからポテンシャルは高いと思うんですよね。
ただ今の時点で、僕が会社にこれ入れたほうが絶対いいですよっていう時の、
投資追加効果を見出すって結構まだ難しいなっていう。
そう、難しいですよね。素晴らしいで、昨日の課の者からずっと言ってるんですけど、
面白いソリューションで面白い会社なんですけど、難しいなあ。
ネタ足りない、ネタ足りない、原田さんが言わんネタ足りない。
そうですね。ただなんというか、神話性は高いじゃないですか、いろんなものと。
そう、これ一番良かったですよ。どこに対応してるんだろうね。
そう、そうですよね。
こういうのちょっと夢がないかもしれないけど、
資金くりに困ってシーメンスが売収する未来がちょっと見えるというか。
そうね、シーメンスかワシュナイターか。
売収する未来かもしれないけど、
ちょっとこう扱うように。
21:02
そうですね。
でもやっぱり世界の中でのシーメンスの結果は、
資金繰りに困ってシーメンスが買収する 未来がちょっと見えるというか
そうね、シーメンスがシュナイターが
買収して、BLMに組み込まれるっていう未来が ちょっと見えるなって
そうだね、ちなみに今サポートしてるのは シーメンスとシュナイターとBNRと
コディスゲー、ロックウェル、 ロックウェルも入ってるんですね、一応。
あと空間も対応してるの面白い。 どこに対応してるかわからないですけど、空間も対応してる。
だから非常に面白いし、夢を感じさせる メーカーでありますよね。
買収される日が来るかもしれないという。
いや、僕は期待したいですね。
買収されたら良さが全部消えちゃう気がするんで。
一気に普通のソリューションになっちゃったという、 イノベーションが大きくなっちゃう。
だと思いますね、やっぱり。
こういうソリューションで、逆にそういう ロゴハードさもっているので、
さっきのユニットテストとか、この辺の間が整えたら また一つの通用性を活用できるんじゃないかなと思ったんですね。
こういうのを組み合わせて。
やっぱりユニテストで、ユニテストライブだけじゃ 多分足りないんですよね。
そうですね、なんていうか、やっぱり根本的な問題としては、
生産設備の利益が少ないことだと思うんですよ。
つまり作ったものの単価が少ないってことですか?
そうですね。
だからユニットテストをするにも、
テストにかけるコースとかそういうものが 年出できるほど利益がない。
なるほど。
だから生産設備を作る中で感じるのは、 コストをかけられないんですよね、そういうところに。
なるほど。
そこが難しさがありますよね。
例えばユニットテストをするときに、 普通に外部インターフェースってスタブみたいなことを書くわけですよね、
ダミーな信号みたいなのを。
そういうのを書くコストすら払えないっていう。
なるほど。
だからITの世界と違うのは、 あまりにも作ったものの利幅が少ない。
専用機に関して言うとですけどね。
リピートというか、 スケーラブルなものじゃないので作っているものが。
24:03
その場かけで生まれるものがほとんどですよね。
だからやっぱり払えないんですよね、そのコスト。
あー。
それは確かに痛い言葉ですね。
作ったものをどうしたらいつ元も取れるんですか みたいな感じですよね。
そうですね。
で、これがもう10年使われるからやっといたら 不具合がいっぱい減ってみたいな話はやっぱりやりにくいですね。
1回しか作らないから。
うーん。
これからのこの会社のもちろんネタがないと。
そうですね。
もうちょっと。
逆に言うと、そういうソリューションとか他のものと組み合わせたりして、
簡単にすぐやれますみたいな話とかを含めながらなんでしょうね。
そうですね。
そういう、どうやってそれを当たり前にするかっていうのは結構大変やなっていう。
そうだね。
多分テストをしましょうっていうことだけで言うと、 多分どっかでつまずくんだろうな。
つまずいよね。
多分なんかもう少し大きい何かにうまく紛れ込ます必要が多分あるんだと思います。
多分ソフトウェア、デバイス、オートメーションもまだどっか会社と一緒にコラボして、
新しいのを何か提案作らないと、 いつで潰れるか、廃止されるかですよね、運命が。
あんまりその方向、別に経営できるわけじゃないから、 そんなあんまり大きなこと言えないとは思いますけど、
やっぱなんかそういうのが必要ですよね。
例えばテストだったら、いやこれからデジタルツインなんですよとか言いながら裏細やるみたいな。
そういうことを織り混ぜていく必要があるんじゃないかなっていうのは、 組織力学的にちょっと思うかもしれません。
そう、今最新のネタでも生成AI使ってるぐらいですね。
プログラム作ったりとか、今PLCプログラム、このプログラム何やってるんですかとか。
解説してくれるっていうのがこれかなと思ったんですね。
そうですね。でも生成AIで簡単なテスト書いてくれるとかは、 普通に市内だとかもやり始めてるわけですから。
そうそうそう。で、これだけでも何パーティー足りないなとは思いながら。
もうちょっと頑張ってほしい、この会社。もうちょっと頑張ってほしい。 潰れないよね、オンシティーこれ。
ブースは、ハノフまで出展できるぐらいには体力がありますからね。
じゃあ、多分資金の価値段は大丈夫そうですね。
そうですね。まあ、とりあえず資金は集まってるはず、わからんけど。
多分、いろいろ大きなメーカーからお金が一緒に出せるんじゃないかなと思うんですね。
いやまあ、頑張ってほしいですよね。我々としては推し会社の一つですね。
そうですね。いままだ日本のメーカー1個も入ってないけど、 ちょっとそれは日本のメーカー入れるようにしたいなって思ってですね。
27:08
わかりました。
このユニットテストの話はまとめると、 関数テストだけじゃ旨味が足りないですね。
で、このユニットテストはちゃんとサティスタンスインの環境を整えて、 じゃないと本当の価値が生み出せない。
生み出されるかもしれないということ。
そうですね。そこまでデカいものはユニットテストなんかっていうのはちょっと疑問にもなりますけどね。
ユニットっていう単位にはちょっと大きいかもしれないけど、 システムテストかもしれないですね。
はい。これはちょっと真面目に話したいんですけど、 真面目に話しなきゃいけないですね。
27:50

コメント

スクロール