このQ&Aは役に立ちましたか?
エクセルデータをPLCへ入力する方法とは?
2023/10/16 03:38
- エクセルデータをPLCへ入力する方法についてお教えください。
- オムロンのタッチパネルとPLCを使用した荷重測定システムを検討しています。荷重関連の仕様データをエクセルで管理しており、PLCへの入力方法について知りたいです。
- 仕様データは全て数字で、4項目(3項目は1ワード、1項目は2ワード)で2000行ほどあります。PLCへの入力手法や経験がある方からのアドバイスをお待ちしています。
エクセルデータをPLCへ入力方法をご教示ください
2008/08/24 09:43
当方オムロンのタッチパネルとPLCを使用した荷重測定システムを検討しています。
荷重関連の仕様データをエクセルで持っていますが、このデータをPLCへ入力する方法についてどのような手法があるか、ご経験の方はご教示下さい。
尚、仕様データは全て数字で4項目(3項目は1ワード、1項目は2ワード)で2000行ぐらいあります。
回答 (2件中 1~2件目)
>尚、データ1~3はうまくコピーできましたがコード(PLCでは2ワード)はうまくコピーできません。
>何かいい方法はありませんか?
先の回答の方法1でやった結果なのでしょうか?
このコードは倍精度整数(2ワード長バイナリ)でしょうか
そしてデータは単精度整数(1ワード長バイナリ)でしょうか
CXPにコピペする場合は1ワードと2ワードが混在したデータは貼り付けれません
(貼っても化ける)
従って1ワード長に統一して貼るしかないでしょう
しかも、データ配列はCXPの配列にしなければなりません
エクセルVBかマクロでプログラムを作って
倍精度整数を分解して16進4桁x2個にする
具体的には
1130001101[d] --> 435A[Hex],72CD[Hex]
単精度整数はそのまま16進4桁x1個にする
60[d] --> 003C[Hex]
こうすれば何も考えることなく全てのデータ配列をHexデータとしてコピペするだけ
DM00,DM01,DM02,DM03,DM04,DM05,DM06,DM07,DM08,DM09
435A,72CD,003C,00EF,00DD,0000,0000,0000,0000,0000 <レコード1
435A,72CE,003D,00EF,00DD,0000,0000,0000,0000,0000 <レコード2
435A,72CF,003E,00EF,00DD,0000,0000,0000,0000,0000 <レコード3
DM4~9はダミーですのでエリアを無駄に消費しますがプログラムは簡単です
因みに単精度整数をHexに変換する関数は
=DEC2HEX(D4,4)
すいません、一部に間違いが有りますので訂正します
2ワードの上位、下位がテレコでした
DM00,DM01
435A,72CD, <誤
72CD,435A, <正
PLC側で全て2ワード10進数としてしまえばそれが一番簡単なのですが?
「10進数」「2W」を選択して貼り付けるだけ
エクセル側が単精度か倍精度かに関係なくCXP側は2ワードデータの塊として認識してくれます
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
方法1 CXprogrammerの機能のPLCメモリ編集機能を利用して
エクセルファイルをコピペする
但しデータ配列をCXprogrammerのデータフォーマットに並べ変えなければなりません
方法2 所謂SCADAやデータロガー等から書きこむ
http://www.tsubakimoto.jp/ecob/dp/dp01.html
http://www.ni.com/labview/ja/
それにしても疑問なのは
あくまでパソコンに入ってるデータをPLCに転送するのですよね
PLC内のデータをパソコンに転送するのでは無くて
一体何の為に?
PLCで作ったデータロガープログラムのテストの為?
測定システムの較正用? <2000行は多すぎると思う
お礼
2008/08/24 18:44
lumiheart 様
早々の回答有難うございます。一体何の為に?説明不足で失礼しました。
このエクセルデータのコードを検索するためです。
下記にエクセルデータ1行を示しますが、このデータからコードデータを照合しデータ1~3を使用して荷重の上下限値を計算するためです。
コード データ1 データ2 データ3
1130001101 60 239 221
尚、データ1~3はうまくコピーできましたがコード(PLCでは2ワード)はうまくコピーできません。
何かいい方法はありませんか?
お礼
2008/08/25 05:07
lumiheart 様
迅速且つ具体的なご回答有難うございます。
先の回答の方法1でやった結果なのでしょうか?
→方法1で行いました。
このコードは倍精度整数(2ワード長バイナリ)でしょうか?
→コードはエクセルでは10桁(例:1130001101)も一つのセルに入りますが、PLCでは1ワードが16ビットなので2ワード必要となります。
そしてデータは単精度整数(1ワード長バイナリ)でしょうか?
→データは最大で4桁(例:239など)なので単精度整数となります。
1ワードと2ワードが混在したデータの貼り付けが分かりませんでした。
早速トライしてみます。