OUT P_CNT 2032~Lng /* CUnet グローバルメモリに現在点番号 PRINT P_CNT HEX$(X(P_CNT)) Y(P_CNT) P_CNT=P_CNT+1 TIME 2000 /*============================================

Similar documents
MPC プログラム 青 文 字 が AD の 主 要 な 部 分 です CUNET TIME 5 CU_POST QUIT 1 FORK 1 *PULSE_AD FOR I=10 TO 20 QUIT I FORK I *DUMMY NEXT I /* SA,OWN,EN /* CUne

テーマ 使用機器 機器構成 Application Note 資料作成 資料番号 an2k-002 RS-485 接続温湿度計の記録と取り出しその 1 USB メモリと CUnet を使った 2 通りのデータログ方法です MPC-2100,MPC-Cunet,MRS-MCOM,USB-

MPC プログラム CUNET CU_POST MEWNET S_MBK &H20 8 OFF CNFG# 5 RS485 "9600b7pes1NONE" FOR I=100 TO 131 S_MBK 0 I NEXT I S_MBK 0 200~Wrd *

adr(Byte)

1. 入力画面

ThisWorkbook のコード 'アドイン 登 録 Private Sub Workbook_AddinInstall() Set Menu = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControl

USB-CUnet 製品別マニュアル

PowerPoint プレゼンテーション

コンピュータ概論

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

D0050.PDF


UIOUSBCOM.DLLコマンドリファレンス

1. 入力画面

なお SW 関数が用意されています WAIT S W (19 2 ) が 1 は反転論理のため オフで 1 となります したがってこの例では 19 3 がオン 192 がオフという AND 条件で成立


MPC-816ファミリ

Microsoft Word _VBAProg1.docx

Ethernet 開発支援ツール ACCEL ti2k (LastUpdate Mar 1, 2019) 概要ターミナルツール (1) TcpTermS.exe ターミナルツール (2) TcpTermM.exe ターミナルツール (3) UdpTermS.exe ターミナルツール (

D0120.PDF

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

PowerPoint プレゼンテーション

D0090.PDF

第 4 章制御プログラムの基礎 BL/1 では それぞれの制御アクチュエータに対応した様々なコマンドが用意されていますが 一度に習得するのは大変な作業となります ここでは 制御内容に合わせて いくつかの代表的なコマンドを紹介します これによって おおまかなプログラムイメージを描いていたただけるものと

2013 年 8 月 14 日 管理図作成マニュアル ( 案 ) 益永八尋 Ⅰ. プログラムの概要 品質管理において必要な QC7 道具の一つである管理図作成のプログラムを作成した このプログラムは 下記の管理図を作成するものである 1 BerX-R 管理図 2Me 管理図 3X 管理図 4np 管

D0020.PDF

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

プロセス間通信

CommandMatrix_8230E

GS1-128 の描画 DLL について (ver. 2.3) 動作環境など動作環境 WindowsXP Windows Vista Windows7 Windows8/8.1 Windows10 上記 OS について すべて日本語版を対象としております 32bit アプリケーションから呼び出される

Lesson 1 1 EXVBA2000 Lesson01 Lesson01.xls 2

コンピュータ概論

PowerPoint プレゼンテーション

<リスト1> AD コンバータへのデータの出力例 NEC PC98 用 mov al,22h // CLK -> 1, CS -> 0, DI -> 0 out 32h,al // シリアル ポートにデータ出力 PC/AT 互換機用 mov al,00h // CLK -> 1 mov dx,3fb

PowerPoint プレゼンテーション

第 7 章プログラム例 7-1 ロボットアプリケーション ここでは 簡単なプログラム例で 基本的なプログラム記述を例示します 想定は 以下のような 4 3 のマトリクス配置されたガラス玉をつかんで 原点で排出するものです こうしたアプリケーションでも PG の設定や原点復帰などが必要となります CO

sinfI2005_VBA.doc

1) 書込 読出機器構成 KEYENCE KV-7500~MPC 接続 KV-7500 の PLC リンクモードを用いて MPC と通信します KV STUDIO Ver9 KV-7500 KV-XL202 Ref No:ti2K Last Modify バス接続ユニット

3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要

08‘͆i”O“Z†j

プレポスト【問題】

            


メモリー MAP Data エリア [MPC] [ パネル ] MBK(0) = DT00000 : : MBK(7899) = DT07899 DT10000 DT10012 : タッチパネル DT (MPC Control) MPC 変数 2word SYSCLK の値 (2word Syste

の包絡線を求めることになる 包絡線は一次式で表せるのでこのときの係数 ( 切片 ) を求 めればよいことになる この係数 ( 切片 ) が粘着力となる 包絡線はモールの応力円に外 接する直線であるため 包絡線の式は下記三式を解くことにより求めることができる 包絡線の式 Y=A1 X + B1 ---

目次 1. 概要 動作環境

EXCEL VBA講座

Microsoft Word - USB60F_Raspi_ doc

MS-ExcelVBA 基礎 (Visual Basic for Application)

2 1 F M m r G F = GMm r 2 (1.1) (1.1) (r = r ) F = GMmr r 3 (1.2) a F m F = kma k 1 F = ma (1.3) (1.2) (1.3) ma = GMmr r 3 (1.4)

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

html ソース <HTML> <HEAD> <META charset="cp932" /> <TITLE>MPC 通 信 サンプル</TITLE> <SCRIPT src=" <SCRIP

45 VBA Fortran, Pascal, C Windows OS Excel VBA Visual Basic Excel VBA VBA Visual Basic For Application Microsoft Office Office Excel VBA VBA Excel Acc

(18,26) 10/ GHz.xls [ (18GHz) ] GHz.xls [ (26GHz) ] +----all.sh [ 2 10 ] +----mesure-ryudai/ / _csv.log [

承 認

Taro-cshプログラミングの応用.jt


Microsoft PowerPoint - vp演習課題

BASICとVisual Basic

VBM01#解答解説# indd

Microsoft Word - VBA基礎(3).docx

Microsoft Word - DT-5100Lib_Manual_DotNet.doc

情報基礎A

テーマ 使用機器 Application Note 資料作成 IAI 製 ロボシリンダ制御 MPC-1000/MPC-N816 IAI ERC2-SA6C-I-PM SE-P 接続ケーブル 他 資料番号 an2k-029 機器構成...1 概要...3 ロボシリンダ ERC


ExcelVBA

ファイル操作-インターネットキャッシュ

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

PowerPoint プレゼンテーション

Microsoft PowerPoint - Visualプログラミング

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

untitled

ルーレットプログラム

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

アプリケーション

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

Microsoft Word - ŁtŸ^‡S

カレンダー講座メモ

バスケットボール

起動画面

94 expression True False expression FalseMSDN IsNumber WorksheetFunctionIsNumberexpression expression True Office support.office.com/ja-jp/ S

データアダプタ概要

CONTEC DIOプロバイダ ユーザーズガイド

B 5 (2) VBA R / B 5 ( ) / 34

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

CommCheckerManual_Ver.1.0_.doc

プロシード

Microsoft Word - CAN Monitor の使い方.doc

Microsoft Word - 取説.doc

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

untitled

VFD256 サンプルプログラム

Ver.1.1

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Prog2_12th

Transcription:

テーマ使用機器 機器構成 Application Note 資料作成 100129 資料番号 an2k-016 CUnet メール転送で EXCEL にデータを入力する MPC-1000 USB-CUnet Windows XP MS-EXCEL 他 温調器 E5EN RS-485 CompoWay/F MPC-1000 MPC-CUnet CUnet USB-CUnet USB MS-EXCEL VBA usbcunet.dll RS-232C MEWTOCOL-COM タッチパネル GT11 MPC は SLAVE 最初に CUNET 4 4 7 '(SA=4,OW=4,EN=7) CU_POST 宣言 PC から要求があるとバックグランドで送信する CUnet メール転送一回分のやりとり PC は HOST cunet_req_pnt(4, 1000, ar(0)) (SA4 に点データ P(1000)~ を要求 ) P(1000)~P(1014) のデータが ar() にデータが格納される 概要 EXCEL VBA で usbcunet.dll を使い ワークシートにデータを直接入力する実験です MPC は一定時間間隔で時刻と温度を点データエリアに蓄積していきます VBA のフォームの Input ボタンを押すと点データを転送してワークシートに貼り付けます MPC~PC は常時接続の必要がなく 任意のタイミングで PC を接続してデータを取り出すことができます このサンプルは MPC-1000 で作成しましたが MPC-2000/2100 でも可能です (MPC-2000/2100 で RS-485 通信をするには MRS-MCOM が必要です ) MPC プログラム青文字が CUnet のコマンドです CUNET 4 4 7 /* MPC-CUNET 初期化 TIME 5 CU_POST /* CUnet メールサーバ起動 /* このコマンドで CUnet メール通信はバックグランドで実行されるので /* MPC のプログラムにはメール送受信のコードはない /* 時間と温度データは点データエリアに蓄積され PC からの要求で転送される QUIT 1,2,3 FORK 1 *TEMP_REC FORK 2 *RS-485 FORK 3 *INFO END *TEMP_REC FOR P_CNT=1000 TO 2500 /* 使用エリアのクリア SETP P_CNT 0 0 0 0 NEXT P_CNT P_CNT=1000 /* WAIT TIME(0)&&HF==&H0 /* 10 秒間隔 WAIT (TIME(0)&&HFF==&H30) (TIME(0)&&HFF==&H00) /* 30 秒間隔 TM=TIME(0) X(P_CNT)=TM TEMP=HEX(res_data$) Y(P_CNT)=TEMP /* X()= 時間 /* Y()= 温度 ACCEL page 1

OUT P_CNT 2032~Lng /* CUnet グローバルメモリに現在点番号 PRINT P_CNT HEX$(X(P_CNT)) Y(P_CNT) P_CNT=P_CNT+1 TIME 2000 /*============================================ /* RS-485 接続オムロン温調器 E5EN から温度データを読み出す /* EXCEL に貼り付けるデータを作るためのコードで CUNET とは特に関係無 /*============================================ *RS-485 /* 温調器タスク CNFG# 1 RS485 "9600b7pes2NONE" /* MPC-1000 J5 5,6 番ピン FORMAT "" /* 文字列フォーマット無し rs485retry=0 /* RS-485 リトライカウント /* 温調器読み出し各種パラメータ mrc_src$="0101" /* MRC,SRC hensu_shu$="c0" /* 変数種別 str_adr$="0000" /* 開始アドレス bit_ichi$="00" /* bit 位置 yoso_su$="0001" /* 要素数 setteichi$="" /* 設定値無し node_no=1 /* ノード no sub_adr=0 /* サブアドレス sid=0 /* SID /* データ構築 cmnd_txt$=mrc_src$+hensu_shu$+str_adr$+bit_ichi$+yoso_su$+setteichi$ /* コマンドテキスト COMPOWAY node_no sub_adr sid cmnd_txt$ snd$ /* ノード No からコマンドテキストまで結合 /* 送信 受信 /* RETRY PRINT# 1 COMPOWAY snd$ /* コマンドフレーム構築 (STX,ETX,BCC 付加 )-> 送信 INPUT# 1 COMPOWAY TMOUT 3 rcv$ /* レスポンスフレーム受信 (BCC チェック ) IF rse_<>0 THEN rs485retry=rs485retry+1 /* Retry Count SELECT_CASE rse_ CASE 1 : PRINT "TIME OUT" rse_ rs485retry CASE 4 : PRINT "BCC ERROR" rse_ rs485retry lf=lof(1) INPUT# 1 CHR_C lf a$ PRINT "LOF=" lf "BUF=" a$ INPUT# 1 CLR_BUF CASE_ELSE : PRINT " 不明なエラー " END_SELECT ELSE BREAK /* Exit from ~ END_IF /* END OF RETRY COMPOWAY rcv$ node_no sub_adr end_code res$ /* レスポンスフレームから展開 ptr_=res$+4 /* res$ にレスポンスコードと読出データ res_code=hex(ptr$(4)) /* res$ の中の ' レスポンスコード ' 4 文字 ptr_=res$+8 res_data$=ptr$(8) /* res$ の中の ' 読出データ ' 8 文字 'PRINT node_no " レスコード " res_code " 温度 " HEX(res_data$) *INFO MEWNET 38400 2 S_MBK &H85 8 TIME 500 GOSUB *CLOCK_SET /* MPC 稼動中のタッチパネル表示 /* MPC 時計をセット FORMAT "00:00:00" BUF$=" "+HEX$(TIME(0)) S_MBK BUF$ 124 10 /* 時間 FORMAT "0000" BUF$=" "+STR$(IN(2032~Lng)) /* 現在の点番号 S_MBK BUF$ 116 8 S_MBK STR$(HEX(res_data$)) 135 4 /* 温度 TIME 500 ACCEL page 2

*CLOCK_SET /* タッチパネル時計 -> MPC 時計 /* GT 本体環境設定 > 各種設定 1 /* 時計 GT 本体時計 /* 外部転送する /* 出力先頭デバイス DT0 /* /* MBK(0) nnss nn: 分 ss: 秒 /* MBK(1) ddhh dd: 日 hh: 時 /* MBK(2) yymm yy: 年 mm: 月 FORMAT "" TODAY=&H20000000+MBK(2)*&H100 TODAY=TODAY+(MBK(1)/&H100) NOW=(MBK(1)&&HFF)*&H10000+MBK(0) SET_RTC TODAY SET_RTC NOW PRX TODAY NOW RETURN 実行後の MPC の点データ X 軸には時刻が HEX で入っています (1385264(DEC) = 152330(HEX) ) Y 軸には温度が入っています pls 1000 P(1000) X= 1385264 Y= 26 U= 0 Z= 0 P(1001) X= 1385472 Y= 26 U= 0 Z= 0 P(1002) X= 1385520 Y= 25 U= 0 Z= 0 P(1003) X= 1385728 Y= 25 U= 0 Z= 0 P(1004) X= 1385776 Y= 25 U= 0 Z= 0 P(1005) X= 1385984 Y= 25 U= 0 Z= 0 P(1006) X= 1386032 Y= 25 U= 0 Z= 0 P(1007) X= 1386240 Y= 25 U= 0 Z= 0 ( 以下略 ) VBA Module1.bas コード ( 使っている関数のみ ) 'CUnet 初期化 情報 Declare Function cunet_usb_open Lib "usbcunet.dll" () As Long Declare Function cunet_dll_ver Lib "usbcunet.dll" () As Long Declare Function cunet_fw_ver Lib "usbcunet.dll" () As Long Declare Sub cunet_init Lib "usbcunet.dll" _ (ByVal sa As Long, ByVal ow As Long, ByVal en As Long) 'CUnet グローバルメモリ Declare Function cunet_in Lib "usbcunet.dll" _ (ByVal adr As Long, ByVal siz As Long) As Long 'CUnet メール転送 Declare Function cunet_req_pnt Lib "usbcunet.dll" _ (ByVal req_sa As Long, ByVal ar_top As Long, ByRef rcv_ar As Any) As Long 'cunet 定数 Public Const Cu_Lng As Long = 8 '4Byte 符号付 Public toral_rc As Long Public Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) VBA UserForm1.frm コード青文字が CUnet の関数です 'Input ボタン Private Sub CommandButton1_Click() Dim ar(60) As Long ' 取得したデータを格納する配列 15 点 4 軸 =60 配列 CommandButton1.Enabled = False CommandButton2.Enabled = False Range("A1", "B10000").Select Selection.ClearContents Range("A1").Select Cells(1, 1) = "TIME" Cells(1, 2) = "TEMP" ACCEL page 3

lastpnt = cunet_in(2032, Cu_Lng) ' グローバルメモリに最終点番号を書いてある Label2.Caption = "Last=P(" + CStr(lastpnt) + ")" rc = 1 brk = 0 toral_rc = 0 'Graph 表示のための public 変数 For pnt = 1000 To lastpnt Step 15 '15 点毎 res = cunet_req_pnt(4, pnt, ar(0)) ' 点データ取得 SA=4, top P()=pnt, input array=ar() If res <> 0 Then MsgBox "cunet_req_pnt Error " + CStr(res) End 'ar() には XYZU の順番で格納されています ' MPC 側 P(1000) X=TIME Y=TEMP Z=0 U=0 ' ' PC 側 ar(0) ar(1) ar(2) ar(3) For i = 0 To 59 Step 4 '1 点 =4 配列 If ar(i) = 0 Then ' X() が 0 なら止め brk = 1 Exit For rc = rc + 1 Cells(rc, 1).Value = Format(Hex(ar(i)), "00:00:00") Cells(rc, 2).Value = ar(i + 1) Next i If brk = 1 Then Exit For Next pnt Range("A" + CStr(rc), "B" + CStr(rc)).Select toral_rc = rc CommandButton1.Enabled = True CommandButton2.Enabled = True CommandButton2.SetFocus 'Graph ボタン Private Sub CommandButton2_Click() Dim WS As Worksheet graph_clear For Each WS In ActiveWindow.SelectedSheets sn = WS.Name Next Range("A1:B" + CStr(toral_rc)).Select Charts.Add ActiveChart.ChartType = xlline ActiveChart.SetSourceData Source:=Sheets(sn).Range("A1:B" + CStr(toral_rc)) ActiveChart.Location Where:=xlLocationAsObject, Name:=sn CommandButton1.SetFocus Private Sub UserForm_Initialize() Label2.Caption = "" CommandButton2.Enabled = False If cunet_usb_open() <> 1 Then MsgBox "USB CUnet Open Error" End Label1.Caption = "DLL Ver:" + CStr(cunet_dll_ver()) + " FW Ver:" + CStr(cunet_fw_ver()) cunet_init 255, 0, 0 Sleep 500 cunet_init 0, 4, 7 ' 初期化 ' 既存グラフを消去する Function graph_clear() As Boolean On Error GoTo errorhandler ACCEL page 4

Range("A1").Select nchart = ActiveSheet.ChartObjects.Count If nchart > 0 Then For cnt = 1 To nchart ActiveSheet.ChartObjects(1).Activate ' 消すと count は減算されるので常に 1 ActiveChart.ChartArea.Select ActiveWindow.Visible = False ActiveChart.Parent.Delete 'Selection.Delete Next Range("A1").Select graph_clear = True Exit Function errorhandler: MsgBox " グラフ消去でエラーがありました (Err " + Str(Err) + ")" 'Resume Next 'Error Err graph_clear = False End Function 実行中の EXCEL スクリーンショット Input(CommandButton1) 押下でデータを取得 Graph(CommandButton2) 押下でグラフ描画 ACCEL page 5