Site拝見させて頂きました... 投稿者:風 投稿日:2007/08/05(Sun) 22:28 No.391 | |
|
はじめまして。いろいろCodingのヒントを探してサーフィンしていてここに辿り着きました。 「上級ラダー講座」の文言に誘われ覗かせて頂きました。
が、一般的なことがらで、どこが上級なのか・・・ってところですが・・・ この課題のロジックを構成するなら、汎用性を考え、Error Flags の立上げ微分を検出し、 BeepをSetして、Beep停止Swの立上げ微分でResetした方が良いかと思います。 Error Flags を微分することで、Error単独での操作も可能になります。 あ、それともうひとつ。「比較命令」とやらを使用するより、「排他的論理和」を使用した方が 速度的に有利かな?(MPUのアーテクチャにもよりますが)
また、同様に微分を使うことにより「ラダー小技集」に掲載されている "Toggle FlipFlop"も多Bits化できるのではないでしょうか? 1Bitの微分命令を使ってしまうと多Bitsに応用できません・・・ また、PLC立上げ時に入力がTの場合、Onするのか無視するのかの選択肢も 放棄する事になります。
以上の事から、Error Flags 微分型に書き換えてみては如何でしょうか?
ところで「上級ラダー講座」くらいになると ん〜〜〜。デジタルフィルタやPID演算、バイナリサーチやハッシュ。 ロジックならUp/Downカウンタ、リング・カウンタ、ジョンソン・カウンタ くらいのレベルは欲しいものですね。
|
| Re: Site拝見させて頂きま... 管理人 - 2007/08/05(Sun) 23:56 No.392 | |
|
|
こんばんは 基本的にラダー初心者向けのHPなのでせっかくお越しいただいたのにご希望に添えずごめんなさい。
又、いろいろなご意見ありがとうございます。 参考にさせていただきます。
>また、同様に微分を使うことにより「ラダー小技集」に掲載されている >"Toggle FlipFlop"も多Bits化できるのではないでしょうか? >1Bitの微分命令を使ってしまうと多Bitsに応用できません・・・
これの意味がよく理解できません・・・。 多Bits化するとうのはどういう意味(用途)ですか?
こういう用途の時にはこういう回路にすれば簡単だとか・・・何か例があるとわかりやすいのですが。 |
| 意味不明で申し訳なかった... 風 - 2007/08/06(Mon) 21:41 No.393 | |
|
|
早速のレスポンス,ありがとうございます.
>多Bits化するとうのはどういう意味(用途)ですか?
申し訳ないです.分かり辛い表現でした. 上級ラダー講座>ブザー停止(上級版) で採用している様に接点や出力命令を使用せず 複数Bits(1Byteや2Bytes,また4Bytes単位)で論理演算を行うことを 言いたかったんです. 上級ラダー講座>ブザー停止(簡単版2)の「解説」に有るように, ToggleFlipFlopのTriggerが100個も在ったら嫌ですものネ.
ToggleFlipFlopだと14命令(ラダー図2行)で記述出来てしまいます. (もっと少ない命令数で出来るかも・・・) 尚且つ,1Wordなら16Bits,2Wordなら32Bitsです. 同様の方法で他の種類の"Latch"や"FlipFlop"を機能Blockとして使用できます. 私の場合,"Transparent Latch"や"R/S FlipFlop"等はよく使います.
ここに伺ったのも 何かのご縁ですので,今後とも宜しくお願い致します.
|
| Re: Site拝見させて頂きま... 管理人 - 2007/08/08(Wed) 23:08 No.394 | |
|
|
レスどうもです。
>申し訳ないです.分かり辛い表現でした. >上級ラダー講座>ブザー停止(上級版)で採用している様に接点や出力命令を使用せず >複数Bits(1Byteや2Bytes,また4Bytes単位)で論理演算を行うことを言いたかったんです.
最近のPLCはいろいろな命令があります。 オムロン・三菱でも新しいPLCでは立ち上がり立ち下がり接点が使えるものがほとんどです。
でも、まだまだAnSクラス相当も安価な為に利用される人も多いのではないでしょうか?
新しいPLCの便利な命令 ・オムロンCJ1等では −|↑|− −|↓|− −|↑|−のb接点 −|↓|−のb接点が使えるのでかなり便利です。
・三菱では −|↑|− −|↓|− はあるのですが −|↑|−のb接点 −|↓|−のb接点が使えないのでオムロン使用後はちと不便です。 こうなると面倒でもPLSやPLFを使用してb接点のほうが良かったり・・・。
あと、FlipFlopの回路では 三菱FXの新しいものでは「ALT」命令があり簡単にできるようになっています。
自分の使用するPLCで便利な命令があれば「どんどん使うべき」だと思います。
ただ、当HPではいろいろなメーカーと安価な機種を使うことを想定しています。 移植というか置き換えがしやすいようにあまり機種固有の命令を使わないような表現にしています。
ところで風さんはパソコンかマイコン関係からPLCへ移ってこられたのですか?それとも両刀使い?電子〜パソコン,PLCまで幅広く?
1Byteだったり表現がPLC Onlyの人と違っていたので気になりました。 昔は私も「1ワード(2ワード)」って何?という世界からPLCに移っていますので。
>ここに伺ったのも >何かのご縁ですので,今後とも宜しくお願い致します.
制御の世界も幅広いです。 私も制御という枠の中でもごく一部の部分しかやっていないという自覚はあります。(取引先の物件次第なので) いろいろな人との交流でいろいろ分野の意見が聞けるのはうれしいことです。
風さんレベルでは歯痒いところは多いとは思いますが、こちらこそ宜しくお願い致します。<(__)>
|
| 暑いです 風 - 2007/08/11(Sat) 01:11 No.395 | |
|
|
あっああ。どうも。 毎日暑いですね。こちらは琵琶湖の辺ですが、やっぱり暑いです。 ま、夜中は窓を開けていると寒いですけど。 明日からお盆休みの方々が多いと思いますが、思いっきり楽しく過ごして下さいませ。
>ところで風さんはパソコンかマイコン関係からPLCへ移ってこられたのですか?それとも両刀使い? 両刀使い?いえいえ、私は女性Onlyです。両刀使いの人のことを「AC/DC」と言うと聞いた事が有りますが、 電気屋の世界だけでしょうか・・・ 私の経歴は、そうですねぇ・・高校生の頃は日立の「ベーシックマスターレベルU」なんてありましたねえ。 初めて買ったコンピュータは富士通の「Micro 8」ってやつですが・・ CP/MやOS-9が走ってましたよね。 仕事で使ったPCはPC-9801でしたねえ。建物の機械警備プログラムや松下電器さんの電球製造機を 動作させてました。管理人さんもN88BASICをつかったとか・・・N88やQuick BASICなんてのも ありましたねぇ。懐かしい。
なもんでパソコンもやりましたし、40や45シリーズまた74シリーズのロジックICでチマチマ基板を 組んだりも・・・・アナログはOpAMPの恩恵に与ってます。 PLCは対環境性が良いのでマイコンボードの様に要らん気を使わなくていいですね。
じゃ、今回は私が使っている"Toggle FlipFlop"の一般式と、PLCでのニーモニックListを 紹介します。もっと最適化された式があれば教えてね。
変数/ 適当なBit数の変数3個 TRG:"FlipFlop"の入力 DELAY:1サイクル前のTRGの状態 Q:"FlipFlop"の出力 塩 少々。醤油 おおさじ1杯。 演算子/ ビット反転:"~" 論理積:"&" 論理和:"|" とします。
Q = ( TRG & ~DELAY & ~Q ) | ( ( ~TRG | DELAY ) & Q ) DELAY = TRG
このままラダーでCodingすると(1Bit)
--| |----|/|--------|/|---------------○-- TRG DELAY Q | Q | --|/|---------------| |-- TRG | Q | ---------| |-- DELAY
--| |---------------------------------○-- TRG DELAY
1行目:Bits反転のロード命令が無いので「ドモルガンの法則」を使い,記憶領域を省略しています. LD R2002 :お約束の常時ON接点 LDA R3500 :TriggerBits(R3500〜R3515)の16Bitsをレジスタにロード CON :マルチステートメント時に記述しますが、以降省略 COM :レジスタの内容をBit反転(16Bits時は$FFFFと排他的論理和でも可) ORA DM1 :レジスタの内容とDM1を論理和.DM1を変数"DELAY"にしています. ORA R3600 :レジスタの内容と出力(R3600〜R3615)を論理和 COM :レジスタの内容をBits反転 STA DM2 :レジスタの内容をDM2(Buffer)に代入.(ここまでの演算結果をとりあえず記憶)
2行目:Bits反転が1箇所なので素直に演算します. LD R2002 :お約束の常時ON接点 LDA R3500 :TriggerBits(R3500〜R3515)の16Bitsをレジスタにロード COM :レジスタの内容をBit反転 ORA DM1 :レジスタの内容と"DELAY"を論理和 ANDA R3600 :レジスタの内容と出力を論理積 ORA DM2 :レジスタの内容と先ほど演算したDM2(Buffer)を論理和 STA R3600 :レジスタの内容が答えなので,出力リレーに書き出し
LDA R3500 :1サイクル前の入力の状態を STA DM1 :"DELAY"へ代入
それと、ここに集っていらっしゃる方々にちょっとしたヒントを頂きたいのですが、 詳しくはまたの機会に。
風
|
| 半角スペースが・・・ 風 - 2007/08/11(Sat) 01:20 No.396 | |
|
|
これではどうですか 全角スペースに変えてみました
--| |----|/|--------|/|---------------○-- TRG DELAY Q_ | Q_ | --|/|---------------| |-- TRG | Q _| ---------| |-- DELAY
--| |---------------------------------○-- TRG DELAY
|
| Re: Site拝見させて頂きま... 管理人 - 2007/08/17(Fri) 23:14 No.397 | |
|
|
こんばんは 返事が遅くなりました。
この回路はキーエンス用ですよね? 最初はR2002常時ONって書いてあったんでRデバイスって・・・松下?富士?キーエンス?と絞りきれず。 命令語がキーエンスぽかったんで調べたら常時ONがCR2002できっとビンゴのはず・・・。(対象はKV700かKV1000あたりでしょうか)
で、この回路ですが R3500〜R3515までの16点分のスイッチ入力を入力1点ずつ個別にオルタネイト化してR3600〜R3615に出力するという回路ですよね?
これってどういうときに使うんでしょう?
思いつくのは・・・ 1.タッチパネルなどで設定画面があり 「有効」「無効」、「使用」「未使用」、「ON」「OFF」などのスイッチがいっぱいある場合 →でもこれだとタッチパネルで設定出来てしまうし・・・。 タッチパネルなしで本物のスイッチがたくさんある場合???
風さんは制御ではどの分野やられてるんでしょうか? プラントとか? |
| 残暑お見舞い 風 - 2007/08/19(Sun) 16:02 No.398 | |
|
|
管理人様 残暑お見舞い申し上げます.
盆も過ぎましたが,皆様の地域は涼しくなりましたでしょうか? こちらは残暑まだまだ厳しいです.
>命令語がキーエンスぽかったんで調べたら常時ONがCR2002できっとビンゴのはず・・・。(対象はKV700かKV1000あたりでしょうか) ビンゴです.
>これってどういうときに使うんでしょう? 勿論,物理スイッチが沢山有る時です.使ったのはPLCじゃなくPCでしたが・・・ 16Bitsの分周器もできちゃいます.チョット手を加えれば16BitsBinaryCounterも できちゃいます.(インクリメントした方が早いですが) ま,そんな訳で,使いたい人が使いたい時に使って下さいませ.
>風さんは制御ではどの分野やられてるんでしょうか? 今は機械メーカの電気やってます. 単純なシーケンス制御もありますが,多量の演算を強いられるものもありますねぇ・・・・ なもんで,どれだけ演算量を減らすかが勝負だったりもします.(スキャンタイム命です) 要するにCodingよりAlgorithmが大変な世界ですね. また,安価にいろんな機能が欲しいなんて要望もあります.
では,今回はそんないろんな要望の中で,安価にアナログ値をPLCに取り込む方法の小ネタです. 最近の安価なPLCでも時間軸は正確で,周波数カウンタを構成できます. その周波数カウンタを利用し,V/F変換ICで電圧を周波数として取り込みます. 私の場合,ボリュームで何かを設定する用途に利用しています. 基準電圧をボリュームで分圧して,ICに入力します.PLCで演算することで,上限/下限/スケールも 自由自在です. ★V/F変換回路は金額にして\1,000.-未満.ユニバーサル基板で作っても30分以内で出来ます. なお,V/F変換は専用の石の方が良いと思います.たまたま,そこらに転がっていたNE555で 一度作ってみましたが,電源に24Vを直接掛けられないのと, 周波数が抵抗の逆数になるので,リニアにするのが大変でした.
〜 風 〜
|
|