«前の日(03-29) 最新 次の日(03-31)» 追記

一往確認日記


2016年03月30日

_ ラダーの自動生成(1)

ラダーのクロスプラットホーム化を考えてみるの流れになりますが、タイトルを変えてラダーの自動生成について試してみます。

ラダーの自動生成

キーエンスではニーモニックの読み書きができるので、Rubyプログラムによる生成をしてみます。

KV STUDIOでR000をそのままR500に出力するラダーを作ります。(KV-5000で試しています。)

ファイルメニューのニーモニックリスト、保存でニーモニック形式でテキストファイルとして書き出すことができます。 適当な場所に書き出します。

Main.mnmというファイルができますので、テキストファイルなどで開きます。

ファイルの中身はこの様になっています。

DEVICE:52
;MODULE:Main
;MODULE_TYPE:0
LD R000
OUT R500
END
ENDH

注目するのはLD R000OUT R500の部分です。 LD R000が接点を表し、OUT R500が出力コイルを表しています。

下の様にLD R001OUT R501を追加するとR001の入力をR501に出力する回路が追加になります。

LD R000
OUT R500
LD R001
OUT R501

ここまでで分かるとRubyで生成できます。 mk_keyence_ladder.rbというファイルに下の内容を入力します。

puts "DEVICE:52"
puts ";MODULE:NewMain"
puts ";MODULE_TYPE:0"
("R000".."R007").zip("R500".."R507").each do |i, o|
puts "LD #{i}"
puts "OUT #{o}"
end
puts "END"
puts "ENDH"

Rubyが実行できる環境(Macだと最初から入ってます)でターミナルアプリを開いて下のコマンドを実行するとNewMain.mnmというファイルができます。

$ ruby mk_keyence_ladder.rb > NewMain.mnm

ファイルの中身は下の様になります。

DEVICE:52
;MODULE:NewMain
;MODULE_TYPE:0
LD R000
OUT R500
LD R001
OUT R501
LD R002
OUT R502
LD R003
OUT R503
LD R004
OUT R504
LD R005
OUT R505
LD R006
OUT R506
LD R007
OUT R507
END
ENDH
view raw Main.mnm hosted with ❤ by GitHub

このファイルをKV STUDIOで読み込んでみます。 今度は読出...で読み込みます。

下の様にR000〜R007がR500〜R507まで1:1でつながった状態になります。

普通は一つ一つ入力していくか、1行入力したら複製しアドレスだけを変更していきますが、人が介在するので入力ミスが発生します。 1101を1011と間違って入力して、たまたま問題なさそうに動いていると、後で重大なミスに繋がってしまうこともあるかもしれません。

ある一定のルールで繰り返したり、アドレスを置き換えていくというのはコンピューターが得意とすることですので、代わりにやってもらった方が早く正確にできます。

Rubyプログラム5行目の部分を変えることで100行でも10000行でも一瞬で生成してくれます。 5行目を下のようにするとR1000〜R1915までをMR1000〜MR1915に1:1で出力するようになります。

(1000...2000).select{|e| e % 100 < 16}.map{|i| ["R#{i}", "MR#{i}"]} each do

R1000〜R1915までの160行をを手作業ですると考えたら気の遠くなる作業ですね。

ここでは簡単な回路でしたが、複雑な回路でも(プログラムするのは大変ですが)一瞬でできあがっててしまいます。 関係するデバイスをExcelの表にしておきそれを読み込んで作り出すこともできます。

エラー回路やシリンダー、RBなんかはパターンがあってアドレスを置き換えるだけというのはよくやっていることだと思いますので、自動生成に向いています。

こんなことができないか?などありましたらご相談ください。(たまには営業も(^^; )

三菱電機もGX Works2ならCSVファイルにニーモニックをかきだせました。(GX Developer、GX Works3はダメでした)

続く


2017年03月30日

_ TODOをMarkdownで(3) - HackMDで (完結編)

TODOをMarkdownで(2)を書いてから半年以上経ってしまいました。

Markdownでは箇条書きなど書きやすく、ホワイトボードに書く様に今日やることや重要なことを書いて、日々書き換えていくということでした。 しかし、書き換えていくので以前書いていた内容が残らないのが問題となっていました。

これをバージョン管理ツールを利用して自動的に差分を記録するようにし後で確認できる様にしていました。 これを説明しようと考えていましたが、ソフトウェアに関わっていない人にバージョン管理ツールの説明をしてもピンとこないのではないかと思い書かずじまいになっていました。

先日Markdownで共同編集ができる MacMD というサービスを見つけました。

HackMD

Markdownのみならずグラフやフローチャートなどまで書けてしまう優れものです。 こちらでMarkdownの書き方からできることが説明されています。 機能紹介 - HackMD

さらに履歴機能があり、バージョン管理ツールを使用して実現していたことが最初から実装されてます。 上の機能紹介の履歴を見てみると下の様になっていて、修正された内容が見れる様になっています。

https://gyazo.com/dff31c089be33f3138f70ac963e97343

ということで、HackMDを利用すればやりたかったことが実現できてしまうということでした。

ちょっとタイトルとカバーに惹かれて買ってしまいました。

B017TPE4PK

ドキュメントがなかなか充実せず申し訳ないと思っているのですが… MarkdownからePubで提供できるということで試してみたいと思います。


2018年03月30日

_ 今度のiPadはApple Pencilに対応

一昨日、新しいiPadが発表になり、Apple Pencilに対応していました。
教育分野をターゲットとしているという事もあるのか、値段は37,800円(税別)からと非常に手ごろな感じです。

https://www.apple.com/jp/ipad-9.7/

iPad Proをそのうちと思っていたので、友人と話してて背中を押された事もあり、その日のうちに注文してしまいました。 Apple Pencilはすでに届きましたよ。

irBoard Player for Deviceと合わせると 50,624円 でPLC向けのタッチパネルがそろう事になります。 そうするとモノクロの小さな画面のタッチパネルとも匹敵する価格になってきますので、検討してもらえる機会が増えるといいなと思っています。

Apple Pencilを使う事で画面の作成が簡単になったりできたりしたらいいなとも思っています。 その前にやる事はまだまだあるのですが…

irBoardはiPadやiPhoneをPLC(Programmable Logic Controller)向けの、タッチパネルディスプレイとして利用できるiOSアプリケーションです。

irBoardサポートサイト