FOCAS2開発 R領域の読み書き

FANUCのNC装置にR領域というメモリ領域があります。ここのビットを読み書きすることで、様々なことが出来ます。

・NC装置のラダープログラムを起動

・シートキーのキーを押したのと同じ動きをさせる

・NC装置のステータスによってビットを立てるようにラダープログラムを作成、PCのソフトが読み取ってステータスを取得(吸着している、プログラム実行中など)

FOCASの関数で出来ないことは、PCソフトとNCのラダープログラムを作る必要があり、R領域を読み書きすることで連動できる、ということです。

R領域を読むのはpmc_rdpmcrng、書くのはpmc_wrpmcrngを使用します。

 

さて、NC装置でR領域を見ると、各番地に8ビットの0、1が入っています。

3200番地00000011

こんな感じです。右端が0番目、左端が7番目。「3200番地の0番目が0か1か」で判断するわけです。

一方、FOCASの読み書きの関数は、3200番地の値=3となります。8つのビットを2進数として、10進数に変換した値で読んだり書いたりします。

引数で3200番地の0ビット目を指定して0か1が帰ってくれば楽なのですが、それはできません。引数で指定するのは番地だけ。帰ってくる値は3200番地全体の10進数表現です。

ということは・・・・。読むにしても書くにしても、VBでビット演算をしなくてはならないことになります。めんどくさい・・・・。

FANUC FOCAS2で開発してます

ソフト開発をしています。NCルーターという工作機械をWindowsから操作したり情報を取得したりするソフトです。NCルーターがどんなものかは下記リンク参照。

FANUC社のNC装置が機械についているのですが、NC装置とWindowsが通信するFOCAS2という仕組みを使っています。フォームをロードする時に情報を読み込んだり、ボタンをクリックしたら設定を書き換えたりなど行います。

開発言語はVisual BasicVisual Studio 2019で開発しています。C#の方が流行りかと思うのですが、FANUCのサンプルがVBだったので、VBで作ってます。

FOCAS2の開発はネット上に全然情報がありません。数社がFOCAS2で開発実績ありますと書いてある程度で、技術的な情報が全然出てこない。FANUCの人以外で何人使ってる人がいるんだろうかと思ってしまいます。

 

SHODA NCルーター 製品紹介

https://www.shoda.com/product/