お世話になります。
VBでPICNICボード(トライステート社製http://www.tristate.ne.jp/)の制御ソフトを作っているのですがコンパイルエラーがでて、プログラムの実行ができません。(VB初心者です)
(1)接点入力、アナログデータは取り込みできます。
(2)パラレルポートのピン方向制御はできます。
(3)パラレルポートのピン方向状態は読み込みできます。
(4)接点出力(I/O pinのLow,High)制御、液晶制御、RS232送信制御ができません。
問題ありソース
Dim retvalue As Variant
Dim n, m As Integer
Dim nameb As String
Dim rez As Integer
Dim status(0 To 3) As Boolean
Dim current As Integer
Dim data(100000) As Integer
Dim datab(100000) As Boolean
Private Sub Command1_Click()
data(current) = PICOCX1.ADinp(PortA, 4)
Label1.Caption = "温度:" & Format(data(current) / 10.23 * 5, "#0.0℃")
retvalue = PICOCX1.Dirp(PortB, 4, pinOutput)
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
Call check
End Sub
Private Sub check()
n = 0
m = 0
nameb = "tanaka"
data(current) = PICOCX1.ADinp(PortA, 0)
Label2.Caption = "温度:" & Format(data(current) / 102.3 * 5, "#0.0℃")
data(current) = PICOCX1.ADinp(PortA, 1)
Label3.Caption = "湿度1:" & Format(data(current) / 10.23 * 5, "#0.0%")
data(current) = PICOCX1.ADinp(PortA, 2)
Label4.Caption = "湿度2:" & Format(data(current) / 10.23 * 5, "#0.0%")
data(current) = PICOCX1.ADinp(PortA, 3)
Label5.Caption = "空き:" & Format(data(current) / 10.23 * 5, "#0.0")
data(current) = PICOCX1.ADinp(PortA, 5)
Label6.Caption = "温度:" & Format(data(current) / 10.23 * 5, "#0.0℃")
'ポートRA5の値 基板側のミス?
data(current) = PICOCX1.ADinp(PortA, 4)
Label1.Caption = "温度:" & Format(data(current) / 10.23 * 5, "#0.0℃")
' 文法テスト
datab(10000) = PICOCX1.ADinp(PortA, 4)
'接点入力状態
status(0) = PICOCX1.Inp(PortB, 0)
If status(0) = True Then
Label7(0).Caption = "扉閉状態"
Else
Label7(0).Caption = "扉開状態"
End If
status(1) = PICOCX1.Inp(PortB, 1)
If status(1) = True Then
Label7(1).Caption = "扉施錠状態"
Else
Label7(1).Caption = "扉解除状態"
End If
status(2) = PICOCX1.Inp(PortB, 2)
If status(2) = True Then
Label7(2).Caption = " "
Else
Label7(2).Caption = "人検知"
End If
status(3) = PICOCX1.Inp(PortB, 3)
If status(3) = True Then
Label7(3).Caption = "High"
Else
Label7(3).Caption = "Low"
End If
'パラレルポート入出力状態
retvalue = PICOCX1.GetDirp(PortB, 4)
'パラレルポート入出力方向制御
'retvalue = PICOCX1.Dirp(PortB, 4, pinInput)
' retvalue = PICOCX1.Dirp(PortB, 4, pinOutput)
'接点出力制御
'data(current) = PICOCX1.Outp(PortB, 4, High)
'void = PICOCX1.Outp(PortB, 4, High)
'retvalue = PICOCX1.Outp(PortB, 4, 0)
retvalue = PICOCX1.Outp(PortB, 4, High)
'液晶の制御
' retvalue = PICOCX1.LcdClear これはサポートされていなとのメッセージ
'retvalue = PICOCX1.ClearLcd '型の不一致エラー
' retvalue = PICOCX1.PutLcd(n, m, nameb)
'retvalue = PICOCX1.SetPos(n, m)
'retvalue = PICOCX1.PutLcd(n, m, nameb)
'シリアルI/F制御
'retvalue = PICOCX1.Transmit(nameb)
retvalue = PICOCX1.Receive '文法エラーでなく誰かがすでに使用しているとのメッセージ
End Sub
エラー内容及び疑問
(1) 接点出力制御
retvalue = PICOCX1.Outp(PortB, 4, High)
コンパイルエラー
型が一致しません。
とのエラーがでます。基本的文法ミスですか?
retvalue を全種10種に型に変更しても変わりません。
(2) retvalue = PICOCX1.Outp(PortB, ・・とエディターで入力時、ADinp命令入力時みたいに入力支援メニュで型宣言がありません。型指定不要ですか?
以上 初歩的質問ですが、悩んでおります。
お忙しいところ申し訳ありませんが誰か教えてください。
No.1ベストアンサー
- 回答日時:
PICNIC、わたしももっていますが、もうながいこと使っていませんでした。
本題ですが、Outpは単に出力するだけのものでしょうから、
戻り値がない=Sub指定なのではないでしょうか。
したがって
Call PicOcx1.Outp( PortB, 1, High )
のようにすればよいようにおもいます。
ただ、未確認ですので、ちがっていたらごめんなさいね
techa 様
お忙しいところ、ご回答いただきありがとうございます。
あれから必死に探したら、このカテゴリーでPICNICではヒットせずoutpでヒットしたソースを見たら、Outpが使用されており、それで解決しました。例 PICOCX1.Outp PortB, 7, High
しかし、techaさん回答例でもいいみたいです。(エラーなし)
また、ひとつ勉強になりました。
でも、今度はノートPC(Win98)が故障したみたいで、コンパイル、実行させるとPCが固まってしまい結果は確認できていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
C言語の構造体にてバブルソート...
-
ビットデータのチェック方法
-
CSVデータについての質問です。
-
(C言語・配列)date[i]の分散...
-
FFTがうまくできない
-
printfの%eで指数部分の桁数を...
-
値によって組み分けを作成する...
-
【Excel VBA】10進数を2進数に...
-
matlabでのRRI検出
-
関数マクロの書き方
-
C言語 リスト構造
-
エクセルVBA:日付データの変換...
-
C言語でPBYTE型からDOUBLE型へ変換
-
H8/36064を使ったシリアル通信...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
パイソン、データーサイエンス...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
CreateProcessでの環境変数の設...
-
【Excel VBA】10進数を2進数に...
-
python 気象データの取得
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
C言語についてです! 同じ年の...
-
オセロゲーム 2次元配列で困...
-
PINVOKEで構造体配列をマーシャ...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
System.Collections.ArrayList ...
おすすめ情報