Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Similar documents
Visual Basic D 3D

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

untitled

Microsoft PowerPoint - VB14.ppt

消防论文(二)

ActiveX Control

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

Microsoft PowerPoint - 第14章.ppt

untitled

Microsoft Word - 小心翼翼的二十一點N.doc

Chapter 16 集合

VB控件教程大全

IsPostBack 2

untitled

Microsoft Word - 專題製作研究報告書.doc

多層次傳銷與獎金系統

untitled

投影片 1

投影片 1

untitled

TC35短信发送程序设计

专注于做最好的嵌入式计算机系统供应商

PowerPoint Presentation

校园之星

“国家高等职业教育会计专业

VB程序设计教程

Microsoft PowerPoint - OPVB1基本VB.ppt

电机与电器专业人才培养方案实施保障.doc

untitled

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

穨文件1

投影片 1

广西民族学院(下)

爱玩科技合作白皮书(2011)

untitled

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

游戏厅捕鱼技巧_天天酷跑游戏技巧 2048游戏技巧,游戏厅打鱼技巧_

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

01

pcc.indd

"#$% & ( )*+,,, -+./01 234,+536,, : 3 ; 33 < =>5+ +,,,%B?B6B B? )-,,,>-% ) ) ) ) ) C C )>4,D--?> -&6+ )5 +4 )+B, +,,-- +,,-- )-(4,,, )

ThreeDtunnel.doc



【主持人】:给大家介绍一下,这次的培训是我们画刊部的第三次培训,当然今天特别有幸请来著吊的摄影家李少白老师给我们讲课


智慧型水塔研究

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

附 件 : 2009 年 度 国 家 精 品 课 程 名 单 一 本 科 国 家 精 品 课 程 ( 以 学 科 为 序, 共 400 门 ) 序 号 一 级 学 科 二 级 学 科 课 程 名 称 学 校 名 称 负 责 人 1 哲 学 哲 学 类 马 克 思 主 义 伦 理 学 安 徽 师 范

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

untitled

Chapter 9: Objects and Classes

RS-232C [11-13] 1 1 (PLC) (HMI) Visual Basic (PLC) 402

綜合社會保障援助指引

Microsoft Word - ch04三校.doc

untitled

第一章 章标题-F2 上空24,下空24

instructions.PDF

目 录 一 机 械 工 程 及 自 动 化 ( 机 械 电 子 工 程 ) 专 业 总 体 概 况 1 二 机 械 工 程 及 自 动 化 ( 机 械 电 子 工 程 ) 专 业 应 用 型 工 程 师 本 科 生 阶 段 培 养 方 案 5 I 本 科 生 培 养 标 准..5 II 本 科 生

Microsoft Word - 11.doc

untitled

IT认证(三)

托管协议

FY.DOC


手册 doc

Microsoft Word - 序.DOC

Microsoft Word - Executive Summary _Chi_ V_6.doc

概述

3.1 num = 3 ch = 'C' 2


二零一五年施政報告 - 施政綱領 - 第三章 扶貧及為弱勢社群提供支援

<4D F736F F D20BACBB0B2C8ABD3EBB7C5C9E4D0D4CEDBC8BEB7C0D6CEA1B0CAAEB6FECEE5A1B1B9E6BBAEBCB C4EAD4B6BEB0C4BFB1EA2E646F63>

<4F4BBEFAA576A470BBA15FC160AAED E786C73>

辽宁铁~1

壹、學校背景

游戏攻略大全(十).doc

I

海底捞你学不会

YEN/MIAO CHING MS 27FEB DEL HKG

Microsoft Word - 02文本.docx


案件

義 和 團 及 兪 國 聯 軍 之 役 課 題 學 習 指 引 : A. 思 考 課 題 有 人 說, 義 和 團 及 兪 國 聯 軍 之 役 是 中 國 近 代 史 的 分 水 嶺, 你 同 意 嗎? B. 思 考 方 向 滿 清 政 府 的 管 治 威 信 思 考 是 否 已 不 信 任 滿 清

最新监察执法全书(一百五十五).doc

游戏攻略大全(三十四).doc

掌握健康 掌握人生


草莓实用技术(一)

Microsoft Word - 【襪子流浪記】.docx

最新监察执法全书(十一).doc

钓鱼技巧_二_.doc

动物的智慧(五)

学位〔2013〕37号

海关法规(七).doc

健康知识(一)

北京(一)

穨ecr6_c_2.PDF

Transcription:

用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll 如果 TwinCAT PLC 运行在 CX1000 上, 则根据 CX1000 的操作系统不同添加的通讯类库也不同, 对于 WinCE.Net 则添加的类库是 \TwinCAT\ADS Api\CompactFramework\v1.0.5000 下的 TwinCAT.Ads.dll, 对于 WinXPe 则添加的类库也是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll 1.VB.Net 项目中添加 TwinCAT.Ads.dll 在 VB.Net 开发环境中, 选择菜单 项目 -> 添加引用 (R), 打开 添加引用 对话框 在对话框中点击 浏览 按钮选择相应路径下的 TwinCAT.Ads.dll, 选择完毕后点击 确定 按钮则可添加到项目中

添加 TwinCAT.Ads.dll 后, 在解决方案资源管理器中可以看到 TwinCAT.Ads 如下图 二 工程开发用 VB.Net 开发运行在 CX1000 上的 HMI,CX1000 操作系统是 Windows CE.Net 4.2 1. 创建新项目打开 Microsoft Visual Studio.NET 2003 开发环境, 点击菜单 文件 -> 新建 -> 项目, 打开 新建项目 对话框

项目类型选择 Visual Basic 项目, 模板选择 智能设备应用程序, 对该项目命名并选择保存路径后按 确定 按钮, 进入下面的对话框 平台选择 Windows CE, 项目类型选择 Windows 应用程序, 然后点击 确定 按钮, 则打开 VB.Net 的开发环境

2. 添加 TwinCAT.Ads.dll 添加...\TwinCAT\ADS Api\CompactFramework\v1.0.5000 下的 TwinCAT.Ads.dll 3. 建立和 ADS 设备的通讯连接 TcAdsClient tcclient= new TcAdsClient(); tcclient.connect("192.168.1.217.1.1",801); 其中,192.168.1.217.1.1 是 CX1000 的 AMS NetID 数据的传输通过 AdsStream 类, 向 TwinCAT PLC 写数据通过 System.IO.BinaryWriter, 读数据则通过 System.IO.BinaryReader 为了建立 ADS 通讯, 在程序中还需要加入下面语句 : Imports TwinCAT.Ads Imports System.IO 4. 界面设计该项目周期性地读取 PLC 程序的 3 个布尔量 (b1,b2,b3) 和 3 整型变量 (i1, i2,i3), 在 HMI 界面上,Data1 Data2 和 Data3 下方的 3 个 TextBox 控件用来显示来自 PLC 的 3 个整数,3 个圆形指示灯用来表征来自 PLC 的 3 个布尔量, 若读取的布尔量是 True, 则相应指示灯的颜色是绿色的, 若读取的布尔量是 False, 则相应指示灯的颜色是红色的 3 个按钮 Light1 On/Off, Light2 On/Off, Light3 On/Off 可以修改 3 个布尔量的值 例如 Light1, 若当前 PLC 中的布尔量 b1 是 True, 则按下按钮 Light1 On/Off 后, 将 PLC 中的布尔量 b1 写成 False, 否则, 将 b1 写成 True 项目中的 Timer1 控件用来周期性地读取 PLC 的 3 个布尔量和 3 整型变量 按钮 Start Read 的功能是启动 Timer1 按钮 Stop Read 的功能是停止 Timer1

先把 PLC 程序下载到 CX1000 中, 使其运行起来 然后把编译的 VB.Net 程序全部拷贝到 CX1000 中, 运行文件夹 bin 中 Debug 下的可执行文件 CXTest 即可 附 : VB.Net 程序如下 : Imports TwinCAT.Ads Imports System.IO Dim hvar1, hvar2 As Integer Dim hb1, hb2, hb3 As Integer Dim tcclient As TcAdsClient Dim istream As New AdsStream(3 * 2) Dim ibinread As New BinaryReader(iStream) Dim bstream As New AdsStream(3) Dim bbinread As New BinaryReader(bStream) Dim b(3) As Boolean Private Sub btnstartread_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnstartread.click Timer1.Enabled = True btnstartread.enabled = False btnstopread.enabled = True Private Sub btnstopread_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnstopread.click Timer1.Enabled = False

btnstartread.enabled = True btnstopread.enabled = False Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick tcclient.read(hvar1, istream) tcclient.read(hvar2, bstream) istream.position = 0 Dim i As Integer txtdata1.text = ibinread.readint16().tostring() txtdata2.text = ibinread.readint16().tostring() txtdata3.text = ibinread.readint16().tostring() bstream.position = 0 For i = 0 To 2 b(i) = bbinread.readboolean() Next i '=================Light 1=========================== If b(0) = True Then Dim mybrush As New SolidBrush(Color.Green) g.fillellipse(mybrush, 46, 126, 40, 40) Dim mybrush As New SolidBrush(Color.Red) g.fillellipse(mybrush, 46, 126, 40, 40) '=================Light 2=========================== If b(1) = True Then Dim mybrush As New SolidBrush(Color.Green) g.fillellipse(mybrush, 189, 126, 40, 40)

Dim mybrush As New SolidBrush(Color.Red) g.fillellipse(mybrush, 189, 126, 40, 40) '=================Light 3=========================== If b(2) = True Then Dim mybrush As New SolidBrush(Color.Green) g.fillellipse(mybrush, 332, 126, 40, 40) Dim mybrush As New SolidBrush(Color.Red) g.fillellipse(mybrush, 332, 126, 40, 40) Catch err As Exception MessageBox.Show(err.Message) Private Sub btnlight1_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnlight1.click If b(0) = True Then tcclient.writeany(hb1, False) tcclient.writeany(hb1, True)

Private Sub btnlight2_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnlight2.click If b(1) = True Then tcclient.writeany(hb2, False) tcclient.writeany(hb2, True) Private Sub btnlight3_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnlight3.click If b(1) = True Then tcclient.writeany(hb2, False) tcclient.writeany(hb2, True) Private Sub frmcx_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '=========== 建立通讯连接 ======= tcclient = New TcAdsClient tcclient.connect("192.168.1.217.1.1",801)

hvar1 = tcclient.createvariablehandle("main.ivar") hvar2 = tcclient.createvariablehandle("main.bvar") hb1 = tcclient.createvariablehandle("main.bvar[0]") hb2 = tcclient.createvariablehandle("main.bvar[1]") hb3 = tcclient.createvariablehandle("main.bvar[2]") Catch err As Exception MessageBox.Show(err.Message) Timer1.Interval = 500 btnstartread.enabled = True btnstopread.enabled = False Private Sub frmcx_paint(byval sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint '=========== 初始化指示灯的颜色为红色 ====================================== Dim mybrush As New SolidBrush(Color.Red) g.fillellipse(mybrush, 46, 126, 40, 40) g.fillellipse(mybrush, 189, 126, 40, 40) g.fillellipse(mybrush, 332, 126, 40, 40) End Class PLC 程序如下 : PROGRAM MAIN VAR ivar : ARRAY [0..2] OF INT; bvar : ARRAY [0..2] OF BOOL ; Index: BYTE; END_VAR FOR Index := 0 TO 9 DO ivar[index] := 10+ INDEX; END_FOR bvar[0]:=true; bvar[2]:=true;