TOP  >  なーお'nぶろぐ  >  Business

日記一覧

当サイトに登録されている日記一覧
60件のうち1 - 10件目を表示しています。


[投稿日   ] [タイトル   ] [アクセス数   ]
1月
20 (金)
カテゴリー  Business
タグ  仕事 プログラム

たまにはやらないと、忘れてしまいそうです。
今回は、シーケンサのデバイスを定義ファイルに従って読み出してCSVファイルに書き出すというVisual Basic .NETのシンプルなものでして、現場での要望に従って1日で書き上げました。

ところが、シーケンサデバイスのコメントを定義ファイルに日本語で書いたまでは良かったのですが、このファイルをForm上の表示と CSV書き出し後にEXCELで開いたときの文字コードの違いなどから、両立ができませんでした。
前 のVB6迄であれば、何も考えずにShift-JISで両立できたと思いました。 .NETはUNICODE(UTF-8、etc)が標準でして、 他の 文字コードは何やらやらねばならぬようでして、今回は勉強している時間も無いしオマケソフトだったので英語コメントで許してもらいました。

まあ、オブジェクト指向でカプセル化や多態性などを利用して構造化しやすい、標準でマルチスレッドも使えるなどメリットも大きいわけですから、このくらいはガマンしなけりゃならないんでしょう・・
いつも参考にするサイト: どぼん!のプログラミング道

コメントあり 1  |  続きを読む |  閲覧(34224)
2月
21 (水)
カテゴリー  Business
タグ  仕事

ようやく、仕事用の液晶モニタを購入しました。

t_003b76be2941ee76b05d2f0d1c29bb9a7a.jpg

これです。→ RDT214S(BK)
(21.3インチ、税送料込で87千円。)

14.1"のThinkPadT42が小さく見えます。
 20インチでも良いと思ったのですが、現在使用中のThinkPadT42 (2373-J8J)の液晶が14.1インチ/解像度1024x768ピクセルなので、 これより文字が小さくなると視力低下が加速すると考えて、21.3インチを奮発しました。 (厳密には文字は若干小さくなりますが・・)
   
サイズ    14.1"     20"       21.3"
解像度  1024x768  1600x1200  1600x1200
画素ピッチ 0.278mm   0.255mm   0.27mm

 ノートPCなので、アナログRGB表示ですが、まあ仕方ありません。
 デスクトップPCで仕事をしても良いのですが、何かあってもすぐに出張に出れるようにしておくことと、その他多少の事情によります。

 これでマルチモニタで、片方にVirtualPCのWin2000の仮想OSで、シリアル通信中も他の仕事がサクサクできます。 (今までは、通信中は通信ソフトの出来が×で何もできなかった) ついでに、「1つのOSに1つしか開けないアプリケーション」を仮想OS上でも開いて参照しながらホストOS側で作成できます。

 冒頭の写真では、モニタの方にWin2000を表示しています。 昨日正式に公開されたVirtualPC2007では、マルチモニタ側でも全画面表示ができます。

 少し仕事にやる気が出てきました。(笑)

続きを読む |  閲覧(7310)
2月
8 (水)
カテゴリー  Business

昨日、東京出張で早めに行って秋葉原を少しだけ散策した。
LAOXのComputer館で、最近はやり始めたラジコン模型の2足歩行ロボットのデモを行っていた。 決して目新しい話題ではないようだが、遅ればせながら気が向いた。  
実演していたのは、Hitec Multiplex社の「 ROBONOVA-1」。 
本体重量1.3Kg(ニッケル水素電池含む)、定価98,000円。
ラジコン用のサーボモーターを16軸搭載。
1CPU、メモリ64KB、PWM出力3CH、A/D変換ポート8CHのコントローラ。
Robo Script, Robo Basic によるユーザプログラム作成ツール付属。思った以上に自由度が高く、動きも遅いとは思わなかった。 ↑のサイトから、6台(96軸)同期デモの画像が見れます。

そこで、ある本が目にとまり購入。(↑のロボットを買ったわけではありません。↓の本だけ。)「二足歩行ロボットのモデルベース開発」 H17.1.20 オーム社、ROBO-ONE委員会編。

modelbase.jpg

http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-20020-5

ROBO-ONE という、二足歩行ロボットの実体対戦競技会があり、既に8回行われている。 これから派生した、 ROBO-ONE on PC  というPC上でロボットモデルを動かしてシミュレーション競技を行う部門があり、この本では 3D-CADによるモデルベース開発から、 MATLAB/Simulink, MSC/visualNastran4D を使ったロボットシミュレーションを行うまでの概要を示している。
↓これは、筆者の一人でもあり2004年ROBO-ONE on PCのmission2で優勝した人のページ。
http://www1.seaple.icc.ne.jp/sugi/robo_one_on_pc_m2.html

これを今後のビジネスに直結できるとは考えていないが、 産業用Motion制御の付帯ビジネスにつながる可能性はあるかもしれない。 あるいは、 その先に眠る未知のビジネスに・・  しかし、この本の内容は数学(特に代数学)が苦手な私には、とても難解だ。(^^;  代数学の基礎の本を改めてめ くってみたりしている。 制御系の連携の部分はソフトがMatlabがないとどうしようもないし・・ いつ放り出すことになるか(笑)

コメントあり 3  |  続きを読む |  閲覧(12453)
5月
16 (火)
カテゴリー  Business
タグ  仕事 FA スピーカー

仕事とオーディオカテゴリの両インデックスに係る話題は、お初かな。

前の会社に居たとき、10年前くらいまで盛んに言われていました。
「感じニアになるな、エンジニアになれ!!」 と。

 → つまり、「こんな感じで考えているんですけどー。」 「こんな感じで設計していただければ」 「そんな感じじゃうまくいかねえな。」  てな抽象的ことでは、マトモな物はできるわけないでしょ、 数値で示しなさい! ってことでした。 ・・ 確かにそのとおり。

でも、ここ数年は、特に私の中では完全に逆転しています。
「理屈をこねる前に、目の前にあることを目玉に焼き付けて、耳で音を聞いて、触って温度を感じてみなさい。 そこで感じたことを、理屈で説明できればそれが正解だ。」 ってことです。

オーディオ的にいうと、「このスピーカーはF特がこんなにフラットですごいねー。 でも音にスピード感が無くて曇ってるんだよね。」 「こんなにいい音なのに、F特は凸凹で高音は15KHz止まりってどーいうこと?」 など、例を挙げればキリがありません。

一言で言ってしまえば「現場主義」ってことになってしまうのかもしれませんが、改善の宝庫を目前にしても何も感じないようでは仕事にならない、とい うことです。  もちろん改善の種を見つけてもその先で実を結ぶための英知(Engineering)がなければ結果は出ませんが。。 これも当たり前の ことですね。

結論づけるとすれば、「現実」と「理論」の両方にいつも意識して深く接する努力が大事なんだな、と思います。

コメントあり 2  |  続きを読む |  閲覧(12036)
12月
13 (水)
カテゴリー  Business
タグ  仕事 FA

 1年に2回くらいしかやらない、PCのプログラムが必要な案件が来ました。
某スタジアムの開閉屋根の走行プログラムの改造。 本体制御はモーション制御なのですが、改造のシミュレーションをパソコン上のシミュレーターを使って行うものでして、そのシミュレーターのプログラムです。
 以前は、VB6のタスク2つで、中間をC+の共有メモリで繋いでいました。 これをVisualBasic.netに移行して、ネイティブなマルチスレッドで1本化するものです。

 ご存知のとおりVB6->.net 移行の際のネックは色々ありまして、単純にプロジェクトのアップグレードで動く物の方が少ないくらいです。 一番困るのは、「コントロール配列が使えない」ということでして。。

sim_net.jpg

 このように、14台ある物体の各ランプを種類毎にまとめたり、数値表示を出したりといった使い方ですから、まず間違いなく コントロール配列を使ったほうが簡単でコードも読みやすいです。

 VB6なら、コントロールをコピー?ペーストすると、勝手にコントロール配列にしてくれました。 Label1でしたら、Label1(0)、Label1(1)・・ という具合です。

 しかし、.netに変わってからは、Label1をコピーすると、Label1-1、Label1-2・・となってしまいます。 オンラインマニュアルを見ると、

「Visual Basic .NET では、コントロール配列はサポートされません。イベント モデルに加えられた変更により、コントロール配列が不要になりました。Visual Basic 6.0 では、イベントがコントロール配列によって共有されていましたが、Visual Basic .NET では、複数のコントロールからのイベントがイベント ハンドラによって処理されます。このことにより、同じイベントを共有する異なる型のコントロールグループを作成できるようになります。」

とあります。
一般的には、 こちらのサイトにあるような方法が簡単にコントロール配列を作れるでしょう。

ただ、クリックイベントなどの際にどのコントロールが対象なのかを判断する時の処理がわかり辛かったり、同じコントロールの配列群を多数set作る 場合などを考慮し 私の場合はコントロールの配列は 「System.Collections.CollectionBase」 クラスを継承したクラス で 「ControllArray」による方法を使用しています。
これは、予め汎用的なControllArrayクラスを作成しておけば、追加呼び出しなども自由ですし、よりオブジェクト指向の書き方になってきます。

**
 まあこの程度のことは、プログラマの方からすれば「何を今更低次元な。」 なんでしょうが。。 これが本業でないプログラマにとっては、結構面倒なわけです。

 さて、42setのコントロール配列群をやっと作り終えたので、本体コード移行に着手しなければ・・

続きを読む |  閲覧(22318)
9月
5 (金)

 今年も、豊田スタジアムのソフト改修に、昨日・本日の2日間、行ってきました。
まずは遠景から
14.jpg
15.jpg


そしていつもの角度から。
 2001年の竣工後、丸7年を経過。 さすがに故障が出だして昨年の秋?今年にかけて機械的なトラブルが散発しまともに動かせなかった。(雨の中のトヨタカップは、2chのスレまで立つほどの苦情が?)
 そこで故障時の復旧容易化などの要望が出てきて、今回はその対応。 ちなみに昨年の記事は、こちら
 
 この1年間のトラブルで、関係者により様々な改修が行われたが、ここにきて台車のエンコーダー位置の重要性を再認識いただたいたようで。 昨日・本日の試運転でトラス台車の位置誤差が相互協調動作のズムーズさに影響することを確認できた。
 竣工時の私の脳内奮闘の内容と、絶妙な運転のための小技の数々。 ここにきてようやく皆さんにわかっていただけて、苦労が報われたような気がした。

 2日目の今日は、2往復していずれもノンストップで自動開閉を完了。 こうして動くのが普通なのだが、それでも久しぶりの勇姿に皆見とれていた。 やっと竣工時の状態を取り戻せたのかもしれない。

 そして来年も、大きな改修が行われる予感。。

**
その他の写真

途中の状態(全V字状態)16.jpg

17.jpg
下から見上げた1番トラス。V字モード中。

コメントあり 2  |  続きを読む |  閲覧(37850)
11月
11 (土)
カテゴリー  Business
タグ  仕事 FA

いつも自社のITばかり紹介していてはブログの意味が無いので、たまには本業の話題を。 

(右の写真の右側です)

g4s3.jpg

 三菱電機の AJ65BT-G4-S3 (通称:G4-S3) を買いました。 CCリンク経由でリンク内PLCのモニタ/書き込みを行うためです。
 ずいぶん昔からG4ユニットはありましたが、Aシーケンサ限定のものでした。 2000年にQモードに対応した後継機種G4-S3が発売になりましたが、あまり使う機会はありませんでした。

 今回は、古い機械でAnAシーケンサで制御している装置の一部をQモーションに置き換えるもので、全体制御は今までどおりAnAで行うものです。
 当時のネットワークはMelsecnet2でしたから、Qシーケンサは割り込めません。 かといって、このためだけにNet10にするのも勿体無い。 → 必然的に、CCリンク(トランジェント通信を使用:下記注2参照)を採用となりました。

 また、新規制御盤と既存制御盤が離れているため遠隔読み出しできないと不便なのですが、生憎AシリーズのCCリンクではCPU経由での読み書きは出来ません。 G4-S3ユニットをCCリンクに割り込ませておけば、AシーケンサもQシーケンサも読み書きできます。(注3)

下の画像はGX-Developerの接続先指定のスクリーンショット。

setsuzoku.jpg

 AnAシーケンサでは通信速度が通常のCPU接続では9.6Kbpsですが、G4-S3を経由すると38.4Kbpsになります。 今となっては38.4Kbpsでも遅いのですが、9.6Kbpsはめちゃくちゃ遅いので この速度アップはばかになりません。 Qシーケンサ相手なら、115Kbpsで通信できます。

 現場の効率アップを考慮すると今回の案件だけでも十分ですが、1つ持っていれば今後も有益か(?) とも考えて購入に踏み切りました。
 今月一杯はソフトデバグやら盤メーカー・機械メーカー立会いなどの出張で手一杯の予定。 現地が終わったら、このG4-S3は外して持って帰ります。(笑)

** 注意

注1: G4-S3を使用して、古い大型AシリーズのPLCを読み書きする場合は、CCリンクマスタ/ローカルユニット(AJ65BT11)の機能バージョンB以降、ソフトウエアバージョンJ以降が必要です。

 資料: PDFファイル

注2: AnAシーケンサへのトランジェント通信は、デバイス直接指定はできません。 ランダムアクセスバッファメモリ経由となります。

注3: 実はまだ通信できていなかったりします。 構成に無理があるのか、三菱電機へ問い合わせをしてみます。 
→ 061126追記: AnAのユニットが古かったようでして、00年の別のユニットに交換したら通信できました。 これで38.4Kbpsで通信できます。(嬉)

続きを読む |  閲覧(23006)
10月
9 (木)
カテゴリー  Business
タグ  仕事 Motion

仕事で、めずらしく制御盤の図面を書いた。
テスト盤ということで急ぐくせにコストをかけられないので、止む無くAutoCAD-LTを使って。

まあ、実績のある図面からほとんど拝借したのだが、元々電気屋ではない自分は図面は読むものであって書く機会はほとんどなく、1面分全て自分で書いたのは初めて。

今日はその出荷前検査を行い、ユニバーサルモデルのモーション制御のACサーボモーターをJOG運転まで実施し、引き取ってきた。 明日は客先工場へ持ち込んで、配線工事を立会い。 来週には不具合なく引渡しの予定。

たまには自分で図面を書かないと勘が鈍るから、今回の案件はちょうど良かった。 :-)

続きを読む |  閲覧(23539)
3月
14 (土)
カテゴリー  Business
タグ  仕事 プログラム FA php

先日以来、PHPで案件に取り組んでいます。

三菱のデータロガーユニットの「クセ」に悩まされつつ、だいぶ進んできました。 昨日と今日は、WEB画面でのグラフ表示にチャレンジ。
 WEBブラウザ上でのグラフ表示には色々な方法がありますが、今回はできるだけ簡単に(書くコードが少ないという意味)時間をかけず、見栄えをあまり凝らずに行きたいので、 Javascriptでやってみました。

 といっても、いつものように、オープンソースを使います。 :-D

 Chart Widget Demo(WebFX)

 自由度は相当低いですが、その分、敷居が低いですね。 今の私には丁度良い。(笑)

 結果、こんな感じです。 20~1000レコードを60秒おきにリロードし、データロガーユニットからFTPでダウンロードしグラフ描画します。 意外に軽い。

200903_php_graph.jpg

 今回はこんな感じで済ませましたが、もっと本格的なグラフ表示も試してみたいですね。

続きを読む |  閲覧(35556)
3月
8 (日)
カテゴリー  Business
タグ  仕事 プログラム FA php

仕事にPHPを使って自身新分野に挑戦中! :-D

概要

 こちらのデータロガーユニット を使ってPLCから受信したEXCELレポートを、ユーザーがWEBサーバー経由で最新版をダウンロードする、というもの。 EXCELのファイル名が固定化していないので、WEBサーバーにFTPクライエントを立てて、ユニットのFTPサーバーへ接続してファイル名を得ることから。

ASPで?

 サーバーはWindowsXPのIIS。 ならばASPだね、ってことでASPでFTPクライエントコードを探したのだが、見つからず。 結局、ASP.netなこのページか。
WebClientクラスでFTPによりファイル転送を行うには? [@IT .NET TIPS]

 しかし、このためだけに.aspxに踏み込むのはいかにも時間の無駄。 やはり色々準備されているPHPかな。 XOOPSで馴染んできたPHPなのでハードルは低くなっているし、イントラ内のシステムなので、セキュリティーへの配慮も負担が少ない。

PHPで?

 ということで、PHP5をインストール。 IIS+PHPはあまりメジャーではないのだが、下記ページを参考にSAPIでやってみたらOK。
PHP5 インストール・設定方法(IIS 編) [Windows で PHP を使おう]
(注意)
 IISで仮想ディレクトリを使う場合、「No input file specified」というエラーが出たら

doc_root =

としておくと良さげ。

FTP関数?

 そして、PHP5に準備されているFTP関数を使えば、OK?
FTP関数 [PHP マニュアル]

 これ、間違いなく使えて他のPCのWEBサーバーともログイン・「ftp_nlist」によるファイル名取得、ともOKなのに、このデータロガーユニット内のFTPサーバーとは相性が悪いのか、「ftp_nlist」でも「ftp_rawlist」でも 空の配列が返るだけで取得できない。 :-(

 半日悩んだ挙句、下記のページを参考に fputsとfgetsで返答文字列を確認しながらやってみると、どうやらうまくいきそうな予感。
FTPクライアント [PHPのちょっとしたTIPS]

 最終的には、上のページで配布されている、このクラスを使うことにして、無事にファイル名を得ることができた。

まとめ

 私にとっては新分野ではあったが、ひとつ心配なハードルがクリアできたので、このまま行くつもり。
 設備制御分野では「電気屋」と「システム屋」のドメインが分かれているので、こういうコラボで小ぶりな仕事には、私のようなマルチ人間は便利で重宝されるため、今後も突っ込んでいきたいと思う。 8-)

続きを読む |  閲覧(39955)
60件のうち1 - 10件目を表示しています。