平成14年度東北地区情報技術教育研究会 発表資料 · web...
Post on 26-Jun-2020
3 Views
Preview:
TRANSCRIPT
平 成 1 4 年 度 東 北 地 区 情 報 技 術 教 育 研 究 会 発 表
資 料
K A R A C R I X に よ る オ ー トメ ー シ ョ ン サ ー バ の 構 築
期 日:平成14年6月20~ 21日 場 所:田沢湖高原温泉郷 山麓荘「 」
岩 手 県 立 千 厩 高 等 学 校 産 業 技 術 科
梅 村 吉 明
- 1 -
- 2 -
- 3 -
は じ め に
イ ン タ ーネ ッ ト の 爆発的な 普及に よ り 、今で は 誰で も Webで情報の 発信や 検索、 メ ール で の 情報の や り 取り が 出来る よ う に な り ま し た 。言う ま で も な く 、イ ン タ ー ネ ッ ト を 利用す る こ と に よ り 、一人の 人間が 得る こ と がで き る 情報量が 数年前と 較 べ て 飛躍的に 増加し ま し た 。 一方、パ ソ コ ン の OSと い え ば MicroSoftの Windowsが圧倒的な シ ェ ア を 誇っ て い ま す が 、近年、注目さ れ て い る の が PC-UNIXの Linux で す 。Linuxは フ リ ーソ フ ト の OSで あ り な が ら 、UNIXと 同様に 高度な ネ ッ ト ワ ーク 機能を 持っ て い ま す 。簡単に 各種の サ ーバ 設定が でき 、運用時の 安定性に は 定評が あ り ま す 。 今回の 研究で は OSに Linuxを 用い て 、そ の 上に karacrixと い う 計 測制御の 機能を 提供す る ソ フ ト を イ ン ス ト ール し ま す 。Linuxの ネ ッ ト ワ ーク 機能が そ の ま ま 利用で き ま す の で 、い ま ま で 前述の よ うな 使い 方し か し て い な い ブ ラ ウ ザ や メ ーラ ーで 、イ ン タ ーネ ッ ト あ る い は イ ント ラ ネ ッ ト の 形で サ ーバ パ ソ コ ン に 接続さ れ て い る 機器を 制御す る こ と が 可能に な り ます 。 事例を 示し な が ら 、イ ン タ ーネ ッ ト 時代の 計測 制御は ど う・い う も の か を み な さ ん と 一緒に 考察し た い と 思い ま す 。
2 . L i n u x と 各 種 サ ー バ 設 定
Linuxは フ ィ ン ラ ン ド の ヘ ル シ ン キ 大学の 学生だ った Linus Torvalds 氏を 中心 と す る メ ン バ ーで 、UNIX の ソ ース コ ード を 1行も 使用し ない で ゼ ロ か ら 書き 上げ た OS で す 。そ れ ま で 高価な コ ン ピ ュ ータ で し か 動か な かっ た UNIXが 安価な パ ソ コ ン で も 利用で き る よ う に な り ま し た 。 Linuxは UNIXと 同様に ネ ッ ト ワ ーク 機能が す ぐ れ て いる の で 、コ ン ピ ュ ータ ネ ッ ト ワ ーク シ ス テ ム の サ ーバ と し て 広く 用い ら れて い ま す 。 今回の 研究で は 、Linuxマ シ ン 1台と WINDOWS マ シ ン 1台の 2台で 構成さ れ る 小規模な ネ ッ ト ワ ーク で 実験し ま し た 。な お 、Linuxのデ ス ト リ ビ ュ ーシ ョ ン
- 1 -
に は い く つ か の 種類が あ り ま す が 、今回用い た の は Turbo Linux4.2で す 。
A.シ ス テ ム 構成 サ ーバ 使用パ ソ コ ン 組立て DOS/V CPU Intel Celeron700MHz ビ デ オ チ ッ プ S3 ViRGE/DX ハ ード デ ス ク 5.0GByte (windows98 )
3.0GByte (TurboLinux4.2) *8MByte の HDD を で 分割しハ ゚ ー テ ン シ ョ ン コ マ ン タ ゙ ー
た 。 ネ ッ ト ワ ー ク カ ー ト ゙ Laneed LD-PCITL
ド メ イ ン 名 my.co.jp サ ーバ 名 ns.my.co.jp webサ ーバ 名 www.my.co.jp* メ ール サ ーバ 名 mail.my.co.jp* ftpサ ーバ 名 ftp.my.co.jp* *ns.my.co.jp と 同義で あ る 。 TCP/IP 設定 192.168.0.1 ネ ッ ト マ ス ク 255.255.255.0 ゲ ート ウ ェ イ 192.168.0.254 DNSサ ーバ 192.168.0.1 ク ラ イ ア ン ト 使用パ ソ コ ン SONY VAIO PCG-FX55/BP ノ ート パ ソ コ ン Windows me CPU Intel Celeron 700MH z モ デ ム 、ネ ッ ト ワ ーク カ ード 内臓
TCP/IP設定 192.168.0.3
B.各種サ ーバ 設定 ア .DNSサ ーバ 今回の ネ ッ ト ワ ーク は 小規模で す の で ホ ス ト 名と IPアド レ ス の 対応は /etc/hosts フ ァ イ ル で 管理す れ ば 十分で す が 、勉強を か ね て BIND を用い ま し た 。 BIND を 使う に は 次の 3 つ の フ ァ イ ル を 設定す る 必要が あり ま す 。 /etc/named.conf /var/named/named.host(正引き デ ータ ベ ース ) /var/named/named.rev (逆引き デ ータ ベ ース ) さ ら に 、ク ラ イ ア ン ト の WINDOWSで は ネ ッ ト ワ ーク コ ン ピ ュ ータ の プ ロ パ テ ィ で DNS設定を 行わ な け れ ば な り ま せ ん 。
/etc/named.confの 設定
- 2 -
// generated by named-bootconf.pl
options {directory "/var/named";/* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */// query-source address * port 53;
};
// // a caching only nameserver config// zone "." IN {
type hint;file "named.ca";
};zone "0.0.127.in-addr.arpa" IN {
type master;file "named.local";
}zone "my.co.jp" {
type master;file "named.host";
};
zone "0.168.192.in-addr.arpa" {type master;file "named.rev";
};
- 3 -
/var/named/named.hostの 設定
/var/named/named.revの 設定
イ .FTPサ ーバ パ ソ コ ン と サ ーバ の 間で あ る 程度大き な フ ァ イル を や り 取り す る 場合は FTPを 用い ま す 。ア ク セ ス 制御を 行わ な け れ ば 、基本的に はLinuxを イ ン ス ト ール し た 状態で 使用で き ま す 。 ウ .webサ ーバ webサ ーバ を 構築す る に は 現在も っ と も 広く 利用され て い る Apacheを 使用し ま す 。 Apache は httpd デ ー モ ン と 設 定 フ ァ イ ルhttpd.conf 、srm.conf 、access.conf で 構成さ れ ま す 。 webサ ーバ の ホ ス ト 名 と webサ ー「 」 「バ の 管理者の メ ール ア ド レ ス の 2点を 設定し 、」 httpd を ス タ ート さ せ る こ とに よ り 利用で き ま す 。
○ 一 太 郎 で ア ニ メ ー シ ョ ン GIF 入 り ホ ー ム ペ ー ジ を 作 成 。 i n d e x . h t m
l と 保 存 。
- 4 -
;/var/named/named.host@ IN SOA ns.my.co.jp. root.ns.my.co.jp. (
1999081501;Serial3600;Refresh900;Retry3600000;Expire3600);Minimum
;IN NS ns.my.co.jp.IN MX 10 mail
;ns IN A 192.168.0.1mail IN CNAME nswww IN CNAME nsftp IN CNAME ns
;/var/named/named.rev;@ IN SOA ns.my.co.jp. root.ns.my.co.jp. (
1999081501;Serial3600;Refresh900;Retry3600000;Expire3600);Minimum
;IN NS ns.my.co.jp.
;1 IN PTR ns.my.co.jp.
○MSDOS プ ロ ン プ ト よ り 、 F T P で サ ー バ に テ ゙ レ ク ト リ public_html を 作 成 。 そ こ に
index.html と GIF フ ァ イ ル を 転 送 す る 。
○ ブ ラ ウ ザ の ア ド レ ス に 注 目 ( http://www.my.co.jp/~umemura/ )
エ .メ ール サ ーバ 電子メ ール の 配送プ ロ グ ラ ム (MTA)と し て sendmail を 使いま し た 。 windows マ シ ン と メ ール の や り 取り を す る に は 、
- 5 -
C:\WINDOWS>ftp ftp.my.co.jpConnected to ns.my.co.jp.220 sima.sis. FTP server (Version wu-2.4.2-VR16(1) Tue Aug 24 01:16: 9) ready.User (ns.my.co.jp:(none)): umemura331 Password required for umemura.Password:230 User umemura logged in.ftp> cd public_html250 CWD command successful.ftp> pwd257 "/home/umemura/public_html" is current directory.ftp> put
さ ら に popサ ーバ も 構築し な け れ ば な り ま せ ん 。残念な が ら TurboLinux4.2で は 、イン ス ト ール 時に popサ ー バ を 構築す る imapパ ッ ケ ージ が 入り ま せ ん 。TurboLinux Japan の サ イ ト か ら imap -4.6-3.i386.rpm を ダ ウ ン ロ ード し 、rpmコ マ ン ド で イン ス ト ール す る 必要が あ り ま す 。 そ の 後、/etc/inetd.confフ ァ イ ル の pop-3に 関する コ メ ン ト を 外し て inetdを 起動し ま す 。 windowsマ シ ン で は メ ーラ ーoutlookに サ ーバ 名とロ グ イ ン 名と パ ス ワ ード を 設定す る 必要が あ り ま す 。
- 6 -
○ umemura@my.co.jp の 自 分 自 身 の ア ド レ ス に メ ー ル を 出 す 。
オ .フ ァ イ ル サ ーバ Samba を 使用す る こ と に よ り ,windows マ シ ン か ら フ ァイ ル サ ーバ と し て 利用 で き ま す 。windows マ シ ン と Linux マ シ ン の ワ ーク グル ープ 名を 一致さ せ 、/etc /smb.confの 暗号パ ス ワ ード を 有効に し ま す 。Samba 用の パス ワ ード を 設定し て smb サ ービ ス を 起動す る こ と に よ り フ ァ イ ル サ ーバ と し て 働き ま す 。
○ ネ ッ ト ワ ー ク コ ン ピ ュ ー タ n s ( Linux マ シ ン ) に ホ ー ム テ ゙ レ ク ト リ umemuraと 各 ユ
ー ザ 共 有 の publicが
表 示 さ れ る 。
- 7 -
カ .デ ータ ベ ース サ ーバ Linuxd で は デ ータ ベ ース と し て PostgreSQL が 利用で き ます 。Linux の イ ン ス ト ール 時に は 入っ て い ま せ ん の で 、後か ら イ ン ス ト ール す る 必要が あ り ま す 。
キ .IPマ ス カ レ ード IPマ ス カ レ ード は グ ロ ーバ ル ア ド レ ス と プ ラ イベ ート ア ド レ ス の 変換を 行い ま す 。IPア ド レ ス の 有効利用に 役立つ ほ か 、ロ ーカ ルネ ッ ト ワ ーク の フ ァ イ ヤ ・ ウ ォ ール と し て も 機能し ま す 。ipchains を イ ン ス ト ール し て ネ ッ ト ワ ーク イ ン タ ー フ ェ イ ス や ル ーテ ィ ン グ グ の 設定を 行い ま す 。
○ サ ー バ を 含 む 3 台 の パ ソ コ ン で 28.8kbps の モ デ ム 1 台 を 使 っ て 、 プ ロ バ イ ダ に 接 続
し 、 3 つ の 異 な る ホ ー ム
ペ ー ジ を 見 る こ と が で き る 。
- 8 -
3 . k a r a c r i x に つ い て
karacrix(エ ス ア イ 創房製)は Linux上で 動作す る 計測制御を目的と し た ソ フ ト ウ ェ ア で す 。こ れ ま で の よ う に パ ソ コ ン 単体で も 計測制御が で き ま す が 、Linux の 提供す る ネ ッ ト ワ ーク 機能を 使っ て 、他の パ ソ コ ン から 遠隔操作で 計測制御が 可能に な り ま す 。
- 9 -
次の よ う な 機能を 持っ て い ま す 。
ア .監視パ ネ ル セ ン サ ,ア ク チ ュ エ ータ な ど の オ ブ ジ ェ ク トを グ ラ フ ィ カ ル ユ ーザ イ ン タ ーフ ェ イ ス (GUI)か ら リ モ ート で 監視、操作す る こ と が でき ま す 。 イ .監視パ ネ ル CAD 監視パ ネ ル を ユ ーザ が 自分で 作成 編集す る こ と が で・き ま す 。 ウ .短期ト レ ン ド グ ラ フ オ ブ ジ ェ ク ト の デ ータ を 計測し な が ら 同時に グラ フ 表示で き ま す 。デ ータ の サ ン プ リ ン グ 周期は 1~3600 秒で 自由に 設定で き ま す 。 エ .制御プ ロ グ ラ ム 各種計測制御ア プ リ ケ ーシ ョ ン を ユ ーザ レ ベ ル で 作成す る た め の 開発環境が 標準 で 搭載さ れ て い ま す 。プ ロ グ ラ ム か ら コ ン ト ロール で き る も の は ,セ ン サ 、ア ク チ ュ エ ータ 及び 計測制御プ ロ グ ラ ム 自身も コ ン ト ロ ール でき ま す 。プ ロ グ ラ ム は C言語 で 作り ま す が 、ユ ーザ ア プ リ ケ ーシ ョ ン イ ン タ ーフ ェ イ ス と し て 、各種セ ン サ や ア ク チ ュ エ ータ を オ ブ ジ ェ ク ト と し て 扱う 制御ライ ブ ラ リ ーが 用意さ れ て い ま す 。 オ .ス ケ ジ ュ ール 機能 各種機器の ス ケ ジ ュ ール 運転を 用途に 応じ て 設定す る こと が で き ま す 。 カ .画像記録 ビ デ オ キ ャ プ チ ャ カ ード 経由で カ メ ラ か ら 画像を 取り 込め ま す 。JPEG圧縮し て 保存、蓄積す る こ と が で き ま す 。画像デ ータ の サ ンプ リ ン グ 周期は 1~3600秒の 間で 自由に 設定で き ま す 。エ ン ド レ ス 画像記録と ワ ンウ ェ イ 画像記録が 選択で き ま す 。
キ .web監視制御 Webブ ラ ウ ザ か ら ア ク セ ス す る こ と に よ りセ ン サ 、ア ク チ ュ エ ータ 、カ メ ラ 画 像や 、ト レ ン ド グ ラ フ の 状態を 取得で き ま す 。また 、各種機器の ON,OFFや パ ラ メ ータ の 設定を ブ ラ ウ ザ か ら 行う こ と が で きま す 。 ク .Eメ ール 監視制御 Eメ ール に 取得し た い オ ブ ジ ェ ク ト の 情報を 記述し て 送信す る こ と に よ り セ ン サ 、 ア ク チ ュ エ ータ の 状態を 返信メ ール と し て 取得で きま す 。監視パ ネ ル 画像や ト レ ン
- 10 -
ド グ ラ フ は 添付フ ァ イ ル と し て 取得で き ま す 。また 、操作し た い オ ブ ジ ェ ク ト を 指 定し た メ ール を 送信す る こ と で 、各種機器を Eメ ール で遠隔操作で き ま す 。
A.イ ン ス ト ール に つ い て イ ン ス ト ール は そ れ ほ ど 難し く あ り ま せ ん が 、Linuxの 操作に あ る 程度慣れ て い る 必要が あ り ま す 。画像を 扱う 場合は 、Bt848系の チ ッ プ を 使っ た ビ デ オ キ ャ プ チ ャ ボ ード が 必要で す 。今回使用し た ビ デ オ キ ャ プ チ ャ ボ ードは I Oデ ータ の GV-VCP/・ PCIで す 。さ ら に TurboLinux 4.2で は シ ス テ ム 内に デ バイ ス フ ァ イ ル が あ り ま せ ん の で 、こ れ を エ ス ア イ 創房か ら い た だ き 、設定す る 必要が あ り ま す 。(当方で も 提供可能)
B.オ ブ ジ ェ ク ト に つ い て karacrixで は 監視、計測制御の 対象を 総称し て オ ブ ジ ェ ク トと 呼ん で い ま す 。 実際に 監視、計測制御の 対象に な る も の に は 、様々な セ ン サ やア ク チ ュ エ ータ が 接続さ れ る こ と に な り ま す 。 こ の オ ブ ジ ェ ク ト に は 次の よ う な 種類が あ り ま す 。 ア .BI,BOオ ブ ジ ェ ク ト BIと は (Binary Input )の 略で 2値入力と い う 意味です 。BIオ ブ ジ ェ ク ト は 2 つ の 状態を 持つ セ ン サ な ど に 使用す る オ ブ ジ ェク ト で す 。 同様に BO は (Binary Output )の 略で 2 値出力と い う 意味です 。BOオ ブ ジ ェ ク ト は リ レ ーな ど の ON/ OFFに 使用し ま す 。 イ .AI.i、AI.fオ ブ ジ ェ ク ト AIと は (Analog Input )の 略で 各種ア ナ ロ グ セ ン サの A/D変換し た 値を 入力す る と き に 使用し ま す 。AI.i (整数値)と AI.f (実数値)の 2 タ イ プ を 使 用で き ま す 。 ウ .IMGオ ブ ジ ェ ク ト IMGオ ブ ジ ェ ク ト と は 動画イ メ ージ を 扱う オ ブジ ェ ク ト で す 。CCD カ メ ラ な ど か ら の ビ デ オ 信号を キ ャ プ チ ャ ボ ード で 取り 込み 、デ ジ タ ル デ ータ 化し た も の を 対象と し ま す エ .擬似オ ブ ジ ェ ク ト 通常オ ブ ジ ェ ク ト に は セ ン サ や ア ク チ ュ エ ータ な ど の 具体的な 機器が 関連づ け ら れ て い ま す が 、擬似オ ブ ジ ェ ク ト は そ れ が
- 11 -
あ り ま せ ん 。プ ロ グ ラ ム で 処理さ れ た 結果な ど を 使い た い 時に 結果を オ ブ ジ ェ ク ト とし て 使用可能で す 。 オ .プ ロ グ ラ ム オ ブ ジ ェ ク ト karacrixで は 、制御プ ロ グ ラ ム の よ う な 実行可能な プロ グ ラ ム も オ ブ ジ ェ ク ト と し て 扱え る よ う に 拡張さ れ て い ます 。オ ブ ジ ェ ク ト と し て 制御の 対象 に な り ま す が 、直接外部機器と 対応づ け ら れ て い ま せん 。
オ ブ ジ ェ ク ト の 概念
C.ア ナ ロ グ デ ジ タ ル IOボ ード に つ い て karacrixを イ ン ス ト ール し た サ ーバ と RS232Cを 通して セ ン サ の デ ータ を 送っ た り 、ア ク チ ュ エ ータ に 信号を 出力す る イ ン タ ーフェ イ ス ボ ード と し て 、ア ナ ロ グ デ ジ タ ル I/ Oボ ード KCXH-IOB10A(エ ス ア イ 創房製)を 使い ま す 。こ の ボ ード に は 温度セ ン サ (LM35DZ )、湿度セ ン サ 、光り セ ン サ (Cds )が 載っ て い て す ぐ に 使え ま す 。 こ の ボ ード の 入出力は 次の よ う に な っ て い ま す 。
ア .接点入力6ビ ッ ト イ .フ ォ ト MOS出力3ビ ッ ト ウ .ア ナ ロ グ 入力 4ch。 8 chま で 使用可。 12 ビ ッ ト A/ Dコ ン バ ータ で 入力レ ン ジ は 0~4095 mV 1 ビ ッ ト の 分解能が 1mV 出力が 3 ビ ッ ト と 少な い の が 残念で す 。も っ と 多く の 出力が 必要な 時は KCXH-I OB20Aを 購入す る か 、自作す る し か あ り ま せ ん 。 こ の ボ ード に は PICが 使わ れ て い て 、RS232Cを 通して サ ーバ と 間で 各オ ブ ジ ェ ク ト と 対応し て い る セ ン サ な ど の デ ータ の やり 取り を し て い ま す 。実際に 制御を 行
- 12 -
う 場合に は サ ーバ 側で 標準で 登録さ れ て い る KCXH-IOB「10A の 計測制御用通」 信プ ロ グ ラ ム を 起動し ま す 。
- 13 -
4 . k a r a c r i x に よ る オ ー ト メ ー シ ョ ン サ
ー バ の 構 築 事 例
オ ート メ ーシ ョ ン サ ーバ の 事例と し て 制御対象物を パ ン の 生地に 直接交流100Vを か け て 焼く パ ン 焼き 器と し ま し た 。 こ の 題材は よ く 理科関係の 本(物理が お も し ろ い ガ リ レ オ工房著な ど )で 見う け ら れ 、 す で に 7 年ほ ど 前に 、当時福岡工業高校に 勤務し て い た 桑畑義行先生(現釜石工業高校)に よ り ポ ケ コ ン で 制御さ れ て い ま す 。 I/Oボ ード の 少な い 出力ビ ッ ト で 制御が で き て 、電流セ ンサ 、温度セ ン サ な ど を 用い れ ば 、そ の 出力変化を グ ラ フ 化で き 、カ メ ラ で 監視し た 場合、パ ン の 生地に 短時間で 変化が 表 れ る と い っ た karacrixの 多く の 機能を 使っ て 大変興味のあ る 題材だ と 思い ま し た 。
- 14 -
A.ハー
ド ウ ェ ア 電流セ ン サ に よ り パ ン の 生地を 流れ る 交流電流を 、白金測温抵抗体で パ ン 内部の 温度を 測定す る も の と し ま す 。ま た 、サ ーバ か ら の 指令に より 電源が リ レ ーで ON/OFFす る も の と し ま す 。 し た が っ て 、電流セ ン サ 回路、白金測温抵抗体回路、リ レ ー回路の3 つ の 回路を 自作す る こ と と し ま し た 。 ア .電流セ ン サ 回路 オ ペ ア ン プ を 使っ た 絶対値回路で 電流セ ン サ か ら の出力を 全波整流し た 後に 、増 幅し て コ ン デ ン サ で 平滑し て い ま す 。
電流セ ン サ CTL-6-S32-8F-CL ( ユ ー・ア ール ・デ ィ ー製 )
イ .白金測温抵抗体回路 1 段目の オ ペ ア ン プ で 白金測温抵抗体の 温度に よ る 抵抗変化を 電圧に 変換し た 後で 10mV/℃ に な る よ う に 2 段目で 増幅度を 調整し ま す 。
- 15 -
システム全体の様子
パン焼き器とその制御回路
白金測温抵抗体 E-52-P6F( オ ム ロン 製 )
ウ .リ レ ー回路
B.ソ フ ト ウ ェ ア webブ ラ ウ ザ や 電子メ ール で 制御し て 、各セ ン サ か ら の 出力を 観測で き ま す が 、専用 の 制御プ ロ グ ラ ム を 作り 、で き る だ け 自動的に 動く よ うに し ま し た 。 karacrixに は kcxラ イ ブ ラ リ と い っ て C言語か ら 外部装置と 各種デ ータ の 入出 力を 行う た め の 関数が 用意さ れ て い ま す の で 、こ れ を 利用し ま し た 。 こ の パ ン 焼き 制御プ ロ グ ラ ム (オ ブ ジ ェ ク ト 名ctl02)は 電子メ ール に よ り 起動さ れ る と 、ま ず ア ナ ロ グ デ ジ タ ル I/ Oボ ード KCXH-IOB10Aの 制御通信プ ロ グ ラ ム (ct l10)を 起動さ せ ま す 。そ し て 、パ ン 焼き 器の 電源( Bo01) をON に し ま す 。電流セ ン サ の 電流値(aif02 )が 0.1[A] よ り 下が っ た 時、あ る い は 電源ON か
- 16 -
ら 15分が 経過し た と き に 自動的に 電源を OFFに し ま す 。そ れ か ら 、パ ン が 焼き あ がっ た こ と を 電子メ ール で 送信し ま す 。 メ ール に は 焼き 始め 時刻と 焼き あ が り 時刻と 所要時間が 書か れて い ま す 。ま た 、こ の メ ール に は 焼き 上が り ま で の パ ン 内部の 温度と 流れ た 電流が ト レ ンド グ ラ フ で 添付さ れ ま す 。
○ 焼 き あ が り を 知 ら せ 、 ト レ ン ド グ ラ フ を 添 付 す る メ ー ル は k c x ラ イ ブ ラ リ の
kcxsnd_email_texts_append() 関 数 を 使 い ま す 。
- 17 -
0001: /******************************************/0002: /* 千厩東のパン屋さん制御プログラム */0003: /* 2001.11.7 */0004: /* by umemura */0005: /******************************************/0006: 0007: #include <karacrix.h>0008: 0009: main( argc, argv )0010: int argc;0011: char *argv[];0012: {0013: struct tm start_time,end_time;0014: int obj_bo01,obj_aif02,obj_ctl10,i,minutes,seconds;0015: float fdata;0016:0017: /* KRACRIXライブラリの初期化(先頭に必須) */0018: kcxinit( argc, argv );0019: obj_bo01 = kcxobj_open("bo01");0020: obj_aif02 = kcxobj_open("aif02");0021: obj_ctl10 = kcxobj_open("ctl10");0022:0023: kcxobj_stat_iwt(obj_ctl10,1); /* 通信制御プログラム起動 */0024: sleep(1); /* 時間稼ぎ */0025: kcxobj_sndistat_tokcx(obj_bo01,1); /* 電源スイッチon */0026: kcxtim_whattime(&start_time); /* 開始時刻の取得 */0027:0028: for(i=0 ; i < 90 ; i++){0029: kcxobj_stat_frd(obj_aif02, &fdata); /* 電流値取得 */0030: if( i > 5 && fdata < 0.1 ) break;0031: sleep(10);0032: }0033:0034: kcxtim_whattime(&end_time); /* 終了時刻の取得 */0035: kcxobj_sndistat_tokcx(obj_bo01,0); /* 電源スイッチoff */0036: sleep(1); /* 時間稼ぎ */0037: kcxobj_stat_iwt(obj_ctl10,0); /* 通信制御プログラム停止 */0038:0039: jikan(start_time, end_time, &minutes, &seconds); /* 焼き上がり所要時間の計算 */0040: report_mail(start_time, end_time, minutes, seconds);0041:0042: }0043: /************************************************/0044: /* 焼き上がりを所要時間を計算する関数 */0045: /************************************************/0046: jikan(stime,e_time,min,sec)0047: struct tm s_time,e_time;0048: int *min,*sec;0049: {0050: if (e_time.tm_min < s_time.tm_min ) *min = 60 - s_time.tm_min + e_time.tm_min;0051: else *min = e_time.tm_min - s_time.tm_min;0052: if (e_time.tm_sec < s_time.tm_sec ) { *sec = 60 - s_time.tm_sec + e_time.tm_sec;0053: *min = *min - 1; }0054: else *min = e_time.tm_sec - s_time.tm_sec;0055: }
0056: /****************************************************/0057: /* 焼き上がったことを知らせるメールを送信する関数 */0058: /****************************************************/0059: report_mail(s_time, e_time, min, sec)0060: struct tm s_time, e_time;0061: int min,sec;0062: {0063: char toaddr[64];0064: char ccaddr[64];0065: char bccaddr[64];0066: char subject[64];0067: char *mtext[10];0068: int i,mtexts;0069: char appendtext[64];0070:0071: strcpy(toaddr, "umemura@my.co.jp");0072: strcpy(ccaddr, "");0073: strcpy(bccaddr, "");0074: strcpy(subject, "パンが焼き上がりました。");0075: 0076: mtexts=6;0077: for(i=0 ; i < mtexts ; i++){0078: mtext[i] = (char *)malloc(64+1);0079: }0080: strcpy(mtext[0], "*** パンが焼き上がったことを報告します。");0081: sprintf(mtext[1], "開始時間 %d時 %d 分 %d 秒",s_time.tm_hour, s_time.tm_min, s_time.tm_sec);0082: sprintf(mtext[2], "終了時間 %d時 %d 分 %d 秒",e_time.tm_hour, e_time.tm_min, e_time.tm_sec);0083: sprintf(mtext[3], "所要時間 %d 分 %d 秒",min,sec);0084: strcpy(mtext[4], "このメールには温度、電流のグラフが添付されています。");0085: strcpy(mtext[5], "そちらもご覧ください。");0086:0087: strcpy(appendtext,"tre 1");0088: kcxsnd_email_texts_append(toaddr,ccaddr,bccaddr,subject,mtext,mtexts,appendtext);0089: }0090:
C.運 用 ア .PPPサ ーバ の 構築(Linux側の 設定) こ こ で は 、で き る だ け 遠隔操作の 雰囲気を だ す た め Linuxマ シ ン に PPPサ ーバ を 構築し て モ デ ム を 使い 、windowsマ シ ン か ら ダ イヤ ル ア ッ プ で サ ーバ と 交信で き る よ う に し ま す 。
よ く 本に 書か れ て い る Linuxで の PPP設定は Linuxマ シン か ら の ダ イ ヤ ル ア ッ プ で プ ロ バ イ ダ に 接続して ホ ーム ペ ージ を 見る と い う ク ラ イ ア ン ト の 設定で す 。(ほ と ん ど の 解説書が そ う で あ る 。) し か し 、次の よ う に 設定す る と Linuxで は モ デ ム を とお し て ク ラ イ ア ン ト に 対し て 各種サ ーバ の 機能を 提供で きま す 。そ の た め に は 、Linuxマ シ ン で mgettyと い う ソ フ トを 使い ま す 。モ デ ム 自身着信機能を 持っ て い ま す が 、こ の 場合mgettyの 判断で 着信さ せ る た め 、モ デ ム 自身が 自動着信し な い
- 18 -
よ う に ATコ マ ン ド で 設定し ま す 。 ATS0=0 た だ し 、通常は 購入時に は 自動着信し な い 設定に な っ て いま す 。 ○mgettyの 設定 /etc/mgetty+sendfax/mgetty.configの フ ァ イ ル に 次の 3 行を 追加しま す 。 data-only y port ttyS1 init-chat ” ” ATS0=0Q0E1L0M0 OK ○mgettyが ブ ート 時に 起動し 、mgettyが プ ロ グ ラ ム動作を 終了し た ら 、 再起動す る よ う に 設定。 /etc/inittab フ ァ イ ル に mg:2345:respawn:/sbin/mgetty ttyS1 を 追加。 ttyS1 は シ リ ア ル ポ ート 2を 表し ま す 。(シリ ア ル ポ ート 1は karacrix の I/O ボ ード が 使用し て い る の で 、シ リ ア ル ポ ート 2に モ デ ム を 接続し た 。) ○ ロ グ イ ン 時の 認証に PAP認証を 設定。 /etc/mgetty+sendfax/login.config フ ァ イ ル で /AutoPPP/ - a_ppp /usr/sbin/pppd auth login -chap +pap kdebug7 debug と 設定。 /etc/ppp/pap-secretsフ ァ イ ル に 接続さ れ る ユ ーザ 名、パ スワ ード 、接続許可す る IPア ド レ ス を 記述。特に 指定し な い 時は 次の よ う に 記述す る 。 * * ” ” * ○ /etc/ppp/options フ ァ イ ル に 次の 7行を 記述。192.168.0.1:192.168.0.3 はロ ーカ ル IPア ド レ ス (サ ーバ の IPア ド レ ス )と リ モ ート IPアド レ ス (接続し て き た ク ラ イ ア ン ト に 割り 当て ら れ る )で す 。 lock -detach asyncmap 0 modem crtscts 192.168.0.1:192.168.0.3 proxyarp イ .オ ブ ジ ェ ク ト の 登録(karacrix側の 設定) 今回使用す る オ ブ ジ ェ ク ト を 登録し ま す 。 オ ブ ジ ェ ク ト 名 電源ス イ ッ チ bo01 温度セ ン サ aif01 下限値0℃ 上限値150℃ 電流セ ン サ aif02 下限値0[ A] 上限値 6[ A] ウ .監視パ ネ ル CADに よ る 監視パ ネ ル の 作成(karacrix側の 設定)
- 19 -
ユ ーザ が 画面を 見な が ら 制御が 容易に 行え る よ う に 監視パネ ル を 専用の CADで 作成 し ま す 。電源ス イ ッ チ 、温度値、電流値、カ メ ラ 画像は 対応する オ ブ ジ ェ ク ト を 貼り 付け ま す 。 ○ 監 視 パ ネ ル CAD で パ ン 焼 き 器 の GUI を 作 成 し ま す 。 ○ 監 視 パ ネ ル で 見 る と 、 CAD で 貼 り
付 け ら れ た オ ブ ジ ェ
ク ト に は 画 像 や 数 値 が 表
示 さ れ ま す 。
エ .パ ン 焼き 制御プ ロ グ ラ ム の 起動(windowsマ シ ン の 動作) karacrixの メ ール コ マ ン ド に よ り 、パ ン 焼き 制御プロ グ ラ ム を 起動す る メ ー ル を 作成し サ ーバ に 送信し ま す 。メ ール の 内容は わ ずか 2 行か ら な り ま す 。 @kcxusr umemura rupin3 は karacrixの ユ ーザ 認証で 、あ らか じ め 登録し て あ る ユ ーザ 名と パ ス ワ ード を 書き ま す 。 @kcxset obj ctl02 onは パ ン 焼き 制御プ ロ グ ラ ム (ctl02)を 起動す る た め の も の で す 。
オ .webブ ラ ウ ザ で 監視(windowsマ シ ン の 動作)
- 20 -
ブ ラ ウ ザ で 監視パ ネ ル や ト レ ン ド グ ラ フ を サ ーバか ら 取得し て 、パ ン 焼き 器の カ メ ラ 画像や 電流、温度の 変化な ど を 見る こ と が で き ま す 。
- 21 -
カ .焼き あ が り 通知メ ール の 受信(windowsマ シ ン の 動作) パ ン が 焼き あ が る と 制御プ ロ グ ラ ム か ら ト レ ン ドグ ラ フ が 添付さ れ た メ ール が 届き ま す 。 ○焼 き あ が り を 知 ら せ る メ ー ル を 受 信 。
○ メ ー ル に 添 付 さ れ て き た ト レ ン ド グ ラ フ を 開 く 。
5 . お わ り に
Linux上に karacrixで オ ート メ ーシ ョ ン サ ーバ を 構築する こ と に よ り 、ネ ッ ト ワ ーク 機能を 利用し た 、ま さ に イ ン タ ーネ ッ ト 時代に ふ さわ し い 制御を 生徒に 体験さ せ る こ と が で き ま す 。そ し て 、今後は こ の よ う な 形態の 制御技術が 重要視さ れ て 行く と 思わ れ ま す 。 ま た 、県内の 学校に お い て も 教育情報ネ ッ ト ワ ーク が 整備され る な ど ネ ッ ト ワ ーク 機能が 身 近で 利用で き る 状況と な っ て き ま し た 。単に 情報の や り 取り だ け に 使用す る の で は な く 工業高 校(学科)的視点か ら 学校内 学校間の 利用方法を 考え て み た い と 思い・ま す 。
- 22 -
(参考文献) 1. TurboLinux で つ く る イ ン タ ーネ ッ ト サ ーバ 工学社 2. TurboLinux で イ ン タ ーネ ッ ト サ ーバ を 作る 本 日刊工業新聞社 3.セ ン サ 応用回路の 設計 製作 ・ CQ 出版 4 . k a r a c r i x ユ ー ザ ー ズ マ ニ ュ ア ル エ ス ア イ 創房
* こ の 資料に は karacrixの マ ニ ュ ア ル 等か ら 一部、引用、転載さ れ て い ま す 。 快く 御許可下さ い ま し た 、株式会社エ ス ア イ 創房様に 感謝いた し ま す 。 な お 、株式会社エ ス ア イ 創房の ホ ーム ペ ージ ア ド レ ス は下記の と お り で す 。
http://www.karacrix.jp
- 23 -
top related