Visual Basic2005 用
通信参考プログラム取扱説明書
■注意事項
このプログラムを運用された結果の影響について、キーエンスは免責とさせていただきます。
このプログラムについての質問はご容赦願います。
■Visual Basic のバージョンについて
この参考プログラムは以下のバージョンのみ対応しています。
Microsoft(R) Visual Basic(R) 2005
使用に際し、.NET Framework 2.0 が必要です。
■通信ケーブルについて
専用ケーブルを使用して下さい。市販のケーブルは使用できません。
D-sub9 ピン機器との接続 OP-96368+OP-26401 (LS7000 シリーズ時は OP-35382)
■変位センサの通信設定について
LK-Gの初期設定値で通信できるように参考プログラムは設定されています。必要に応じて変更して下さい。
初期設定値は以下の通りです。
一般的な通信仕様 ボーレート 9600
データ長 8bit
パリティ なし
ストップビット 1bit
■参考プログラムの使い方
Visual Basic を起動してプロジェクト
” \WindowsApplication1\WindowsApplication1\WindowsApplication1.vbproj ”を開いてプログラムを実行し
ます。
Command の下の TextBox に送信文字列(変位センサの受信コマンド)を入力し Send ボタンをクリックすると、
送信文字列が送信され変位センサからの返信コマンドを受信して表示します。
Setting タブで Port などの設定変更が可能です。変更後 Set ボタンで変更されます。
1/4
Case2
Case2 『特殊ユニット初期設定の極意 』
Case2 『特殊ユニット初期設定の極意 』
変位センサから受け取るアナログ入力のレンジを変更する方法は?
シリアルユニットのボーレートを変更する方法は?
アナログのレンジ設定を
4-20mA
マニュアルで確認したことは
ありませんか?
ラダープログラムやスイッチで入力レンジやボー ラダープログラムを作成して
レート設定を行うためにはマニュアルで調べる
設定しませんか?
必要があります。
またプログラムを作成するにもマニュアルを
調べる必要があります。
極意2 マニュアル不要で詳細設定
極意2 マニュアル不要で詳細設定
ユニットの設定はすべて、ソフトで行います。
設定項目を選択すれば設定の説明も表示されるのでマニュアルで確認する必要がありません。
ユニットを選択すると
右側に設定画面が
表示されます。
詳細設定はプログラムを
組まずに行えます。
スケーリングの
設定ができるので
演算不要です。
平均処理も設定
で行えます。
局番の設定も
ユニットエディタで
行えるので
設定の項目を
ロータリスイッチ等の
選択すると設定の
設定はありません。
説明が下に
表示されます。
Case3
Case3 『特殊ユニットの演算の極意 』
Case3 『特殊ユニットの演算の極意 』
位置決め目標座標を四則演算で求める時のラダープログラムは?
PLCで変位センサのデータを処理したい!
ラダーでの演算に
苦労したことはありませんか?
演算内容を見ても
理解するのに時間が
かかったことは
ありませんか?
特殊ユニットを使用すると演算をする機会が非常に増える。
ラダープログラムでは演算の記述方法、命令語がわからない。
極意3 KVスクリプトで簡単・見やすい演算が可能
極意3 KVスクリプトで簡単・見やすい演算が可能
変位センサから取り込んだ値を計算します。
計算例 DM2000=((20000-DM1000)*3+40)*5
従来のラダープログラムによる
演算では計算内容が見た目では
すぐにわかりません。
マニュアルで記述方法を
確認する必要があります。
KVスクリプトなら
計算したい数式をそのまま
記述できるのでマニュアルで
調べる必要がありません。
KVスクリプトなら
F1キーで
ヘルプを確認
さらに!
わからない命令語をも選択した状態でF1キーを押
せば使い方の詳細やサンプルプログラムが
確認できるヘルプが表示されます。
Else
SerialPort1.NewLine = Chr(0)
End If
Call SerialPort1.Open()
End Sub
End Class
■その他の技術情報
マイクロソフトのWEBサイト( http://www.microsoft.com/japan/msdn/vbasic/)より技術情報を得ることができ
ます。
http://www.microsoft.com/japan/msdn/vstudio/express/より VisualBasic2005 Express Edition 無償版をダ
ウンロード可能です
4/4
Dim OutCommand As String
'TextBoxの送信文字列(LK-Gの受信コマンド)を取り込み送信文字列用変数に入れます
OutCommand = TextBox1.Text
'パソコンのCOMポート(232C通信ポート)からコマンドを送信します
SerialPort1.WriteLine(OutCommand)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
'COMポートをクローズします
Call SerialPort1.Close()
'プログラムを終了します
End
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
Call SerialPort1.Close()
'通信仕様を設定します。と同じ設定にします
SerialPort1.PortName = ComboBox5.Text
SerialPort1.BaudRate = ComboBox1.Text
Select Case ComboBox2.Text
Case "None"
SerialPort1.Parity = IO.Ports.Parity.None
Case "Even"
SerialPort1.Parity = IO.Ports.Parity.Even
Case "Odd"
SerialPort1.Parity = IO.Ports.Parity.Odd
End Select
SerialPort1.DataBits = ComboBox3.Text
Select Case ComboBox4.Text
Case "0"
SerialPort1.StopBits = IO.Ports.StopBits.None
Case "1"
SerialPort1.StopBits = IO.Ports.StopBits.One
Case "1.5"
SerialPort1.StopBits = IO.Ports.StopBits.OneP ointFive
Case "2"
SerialPort1.StopBits = IO.Ports.StopBits.Two
End Select
If ComboBox6.Text = "CR" Then
SerialPort1.NewLine = Chr(13)
3/4
失敗しない!
プログラム作成の極意(特殊ユニット編)
Case1 『 特殊ユニットデバイスNo.確認の極意 』
Case1 『 特殊ユニットデバイスNo.確認の極意 』
アナログユニットのAD変換データのデバイスNo.は?
位置決め ユニットの運転開始のデバイスN o .は?
温調 ユニットの温度 デ ータのデバイスN o. は?
特殊ユニットの
デバイスNo.を調べるために
マニュアルを確認したことは
ありませんか?
デバイスコメントの入力に
時間がかかっていませんか?
極意1 特殊ユニットデバイスコメント登録
極意1 特殊ユニットデバイスコメント登録
特殊ユニットのデバイスに割り付いている機能をデバイスコメントとして、
自動的に登録することが可能です。
マニュアルを確認しなくてもデバイスコメントを見れば機能がわかります。
ユニット構成を参照し、
デバイスコメントを自動登録
さらに!
置換が可能
デバイス
コメント登録 ch0のコメントのみ
1号機に変更
コメント欄での検索・置換が可能
デバイスの検索にも使用できます。
『コピペ』の使い方
このテキストから、プログラムをコピーしてKV STUDIO(ラダーサポートソフト)に、取り込む方法を説明します。
① テキストから、必要なプログラムをコピーします
コピーマーク
テキストのプログラム部分には、コピーマークがついています。
赤字の部分がプログラムです。
コピーしたい部分を選択し、コピーします。
コピー
プログラム中の「’」(シングルクォート)について
KVスクリプトでは、「’」(シングルクォート)を入力すると、「’」~行末までをコメントとして扱います。
行頭に「’」を記述すれば、行全てがコメントになり、演算式の後ろに「’」を記述すれば演算式の注釈となり
ます。
記述例)
’この行は全てコメントとして扱われます。
緑部分はコメントとして扱われます。
D0 = D1 + D2 ’D1とD2を足し合わせD0に格納
■ソースコード
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs)
Handles MyBase.Load
'通信を行う前にパソコンのCOMポートをオープンします。
'COM1を使用します。パソコンの環境により異なります
SerialPort1.PortName = "COM1"
'通信仕様を設定します。LK-Gと同じ設定にします
'ボーレート:9600bps、パリティ:なし、データ長:8bit、ストップビット長:1bit、デリミタCR
SerialPort1.BaudRate = 9600
SerialPort1.Parity = 0
SerialPort1.DataBits = 8
SerialPort1.StopBits = 1
SerialPort1.NewLine = Chr(13) 'デリミタCR (キャラクターコード)
'COMポートをオープンします
Call SerialPort1.Open()
End Sub
'シリアル通信イベントの処理を実行するための定義
Delegate Sub AddDataDelegate(ByVal str As String)
Private Sub AddData(ByVal str As String)
Label2.Text = str
End Sub
'返信コマンドをパソコンが受信したときに発生するイベントを処理します
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim strDataReceived As String
Dim add As New AddDataDelegate(AddressOf AddData)
Try
strDataReceived = SerialPort1.ReadLine
Catch ex As Exception
strDataReceived = ex.Message
End Try
'受信したデータをAddData メソッドによってテキストボックスに表示
Label2.Invoke(add, strDataReceived)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
'送信文字列用の変数を文字列型で宣言
2/4
② KV STUDIOに貼り付けます
ラダーサポートソフト
KV STUDIO
貼り付け先として、KVスクリプトのエリアを用意してください。
ボックススクリプト
実行条件をラダーで
記述します。
エリアスクリプト
実行条件を持たないので、
常時実行します。
アプリケーション⑧
平均値、標準偏差の計算
~計測データの平均値、標準偏差を計算する方法~
KVスクリプトで数値データの平均値を計算する関数は「AVG」です。
◇例えば、数値データの平均値を計算するときは・・・
EM0.F = FLOAT(AVG(DM0000.U,DM1000.U))
平均値、標準偏差を計算するプロジェクト例
'測定データの平均値・分散・標準偏差を計算します。
'平均値:@EM0 分散:@EM2 標準偏差:@EM4
'平均値の計算
@EM0.F = FLOAT(AVG(DM0000.U,DM1000.U))
'分散の計算
@EM6.F = 0
FOR Z1 = 0 TO DM1000-1 STEP 1
@EM6.F = @EM6.F+(TOF(DM0000:Z1) - @EM0.F)^2
NEXT
@EM2.F = @EM6.F/(TOF(DM1000))
'標準偏差の計算
@EM4.F = ROOT(@EM2.F)