TwinCAT高级语言编程接口.ppt_第1页
TwinCAT高级语言编程接口.ppt_第2页
TwinCAT高级语言编程接口.ppt_第3页
TwinCAT高级语言编程接口.ppt_第4页
TwinCAT高级语言编程接口.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TwinCAT高级语言编程接口 1 尚德明 TwinCAT SoftPLC 工业软PLC分类: u实时运行核: 使用操作系统的实时性 自主研发实时核 编程语言PLC程序执行机制和Windows应用程序的执行机制不同,Windows应用程序是通过消息机制触 发,而PLC程序的执行时通过一个定时器自动定期触发。 因此对于软PLC来说,定时器的精准直接影响PLC逻辑执行的准确性和效率。 自主开发的实时核和操作系统依赖性小,更稳定,更准确。目前世界上主要有三家公司开发了实时核: Beckhoff,IntervalZero,TenAsys。目前我们公司的实时核还不对外开放,TwinCAT 3以后将对外 开放,对外开放就意味可以使用高级语言来编写PLC程序。目前TwinCAT系统中想使用高级语言来 进行控制只能使用操作系统的实时系统通过R3IO来实现另外一种软PLC。 u:编程语言 n 计算机高级语言(如C+)(R3IO) n IEC 61131-3国际编程标准 2 高级语言和下位的通讯方式 上位用户界面和BECKHOFF 产品通讯主要方式: 实时非远程:R3IO 非实时远程:ADS通讯 ,Modbus,OPC 文档: R3IO: Information System-TwinCAT- TwinCAT R3IO ADS: Information System-TwinCAT- TwinCAT System-TwinCAT Connectivity 3 通讯方式比较 通讯周期: R3IO 通讯时间可以忽略,数据交换时间取决于定时器,CE试用 BECKHOFF提供的TcTimer可以达到100微秒 XP系统最小在1毫秒左右 ADS通讯时间在2-3毫秒左右.但是考虑到ADS Server的响应时间 ,一个命令周期可能需要200毫秒 系统拓扑: R3IO是通过指针直接访问IO内存映像.本地操作(把它当成高级语 言编写的PLC) ADS是网络通讯,可以是远程访问 Modbus和OPC的性能和ADS在水平 以下主要介绍ADS通讯 4 ADS简介 在Beckhoff TwinCAT 系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、Windows 应用 程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCAT ADS 而完成。ADS(Automation Device Specification)即自动化设备规范,它为设备之间的通讯提供 路由。 在TwinCAT PC 和Beckhoff 的CX、BX、BC 系列控制器中都包含TwinCAT 信息路由器。因此各 个ADS 设备之间都能够交换数据和信息。 ADS 服务有TwinCAT服务程序提供,当PLC中需要调用操作系统功能时也是通过ADS命令来驱动 TwinCAT服务来完成(如文本文件读写,获取系统时间等)。 基于ADS 的TwinCAT 系统构架如下图所示: 5 ADS 通讯协议概述 ADS协议处于网络通讯协议的应用层。 6 应用层 传输层 Internet层 网络接口层 TCP/IP模型OSI模型 TwinCAT ADS 设备标识 每台TwinCAT ADS 设备都有各自不同的AdsAmsNetId 和AdsPort(端口号), 以相互区别。 AdsAmsNetId 是TCP/IP 地址的扩展,是TwinCAT Message Router,存在于每 台TwinCAT PC 或Beckhoff CX、BX、BC 系列控制器中。例如:如果一台PC 的IP 地址是“0”,那么它的AdsAmsNetId 就是“0.1.1”。当然,也可 以对AdsAmsNetId 进行修改。 每台ADS 设备(ADS Server)的AdsPort 都各不相同,且固定不变。而ADS 客 户端(ADS Client)应用程序的AdsPort 则是可变的。不同ADS 设备的AdsPort 如下 图所示: ADS ADS 设备设备 AdsPortAdsPort PC 控制器中的PLCRun-time system 1801 Run-time system 2811 Run-time system 3821 Run-time system 4831 自定义任务( Additional Task )Additional Task 1301 Additional Task 2302 BCxxxx 控制器中的PLC 800 NC 500 7 ADS 通讯方式 ADS 设备之间的通讯有多种方式,不同方式有不同的特点。 1. 一般的ADS 通讯(General ADS Services) - 异步方式(Asynchronous) ADS 客户端向ADS 服务器发送ADS 请求,同时客户端继续自己 的工作。ADS 服务器处理请求后,把响应以Call-back 函数方式 发给客户端。 - 通知方式(Notification) ADS 客户端向ADS 服务器发送ADS 请求,ADS 服务器以Call- back 函数的方式不断向客户端发送响应,直到客户端取消该请求 。 这两种通讯方式的效率高,但需求复杂的客户端程序。 注意:每个的端口最多注册550个通知 优点:不会造成系统堵塞 缺点:不能确保每次请求都有返回 比喻:发邮件 8 ADS 通讯方式 2.特殊的ADS 通讯(Specific ADS Services) TwinCAT ADS 设备和Windows 应用程序(例如VB、VC 应用程 序等)之间的通讯除了可以采用一般的ADS 通讯方式外,还可以采 用特殊的通讯方式,即同步通讯方式。 - 同步方式(Synchronous) ADS 客户端向ADS 服务器发送ADS 请求,在通讯过程中客户端 程序停止执行,直到获得ADS 服务器返回的响应。 这种通讯方式不需求复杂的客户端程序,但其轮循的通讯方式给 系统带来比较大的负载,因此通讯效率较低。 优点:能即时返回结果 缺点:如果通讯故障会造成系统堵塞 比喻:通电话 9 ADS API 为方便各种计算机高级语言及其环境使用ADS通讯,Beckhoff TwinCAT提供 相如下组件: ADS .NET Component 适用.NET平台,VB.NET,C#等 ADS-OCX (ActiveX COM控件) 适用于Visual Basic, Visual C+, Delphi等. ADS-DLL 适用于Visual C+等. ADS-Script-DLL 适用于 VBScript, Jscript等脚本,创建B/S架构的应用. JAVA DLL 适用于JAVA语言。 “PlcSystem.lib” PLC 库 ADS设备可以通过据此和其他ADS设备以及Windows进行通讯。 10 ADS 访问变量方式 TwinCAT ADS访问变量有两种方式: 1.地址方式 一个PLC变量的地址由两部分组成:GroupIndex和OffsetIndex : GroupIndex一般用于区别寄存器类型,在TwinCAT ADS设备中 为常量,具体内容可以参考Information System(后附常用的 GroupIndex值)。 OffsetIndex为变量的偏移地址,在PLC中为该变量的地址。 2.变量名方式 在TwinCAT ADS设备中每个变量都有一个句柄(Handle)。 适用变量名访问变量首先需要得到该变量的句柄。(不同的高级 语言方式略有不同) 11 ADS组件库文件组成简介 12 ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含 ADS通讯组件,如果用户希望在没有安装TwinCAT软件的计算机适用ADS通讯 组件可以安装Supplement中的TwinCAT_ADS_Communication_Library此 为免费产品。 除需要复制到Windows/System32目录外绝大部分相关文件可以在 TwinCAT安装目录找到。假设TwinCAT安装路径为C:TwinCAT 文件描述 C:TwinCATADS ApiTcAdsDllADS DLL C:TwinCATADS Api.NET.NET组件(支持三个版本的Framework) C:TwinCATADS ApiAdsToJavaADS JAVA DLL C:TwinCATADS ApiCompactFramework.NET Compact Framework组件 C:TwinCATADS ApiLib VS 97Lib C:TwinCATADS ApiTcAdsWebServiceWebService组件 C:WINDOWSsystem32AdsOcx.ocxADS OCX C:TwinCATTcScript.dllADS-Script-DLL 如果可以建议用户最好用TwinCAT CP,ADS组件出了 配置稍微麻烦一些外,对于多个客户端并行通讯业有局限性 Ads 组件调用过程简介 13 .NET调用流程 新建工程 添加引用TwinCAT.Ads.dll 定义TcAdsClient对象 private TcAdsClient adsClient; 初始化TcAdsClient对象 adsClient = new TcAdsClient(); adsClient.Connect(801); 通过变量名取得变量的句柄注册DeviceNotification事件 用于读写 变量 AddDeviceNotific ation 读写变量接受处理返回结果 释放资源 ADS .NET组件通讯方式 14 直接封装TcAdsDll.Dll(ADS Client工作模式) 按照AMS协议组件Socket数据包直接通过TCP系统通讯( ADS Server) Ads 组件调用过程简介 C+ 在 Visual C+ 中进行链接和程序开发时所需要的文件: TcAdsDll.dll 动态链接库 TcAdsDll.lib 使用 TcAdsDll.dll 的函数库 TcAdsApi.h 声明 ADS 功能的头文件 TcAdsDef.h 声明结构和常数的头文件 主要接口: AdsPortOpen:建立 TwinCAT 信息路由器连接 (通讯口)。 AdsPortClose:关闭 TwinCAT 信息路由器的连接(通讯口)。 AdsGetLocalAddress:返回本地 NetId 和端口号 AdsSyncWriteReq:同步写数据到一个 ADS 设备 AdsSyncReadReq:从 ADS 服务器中同步读数据。 AdsSyncReadWriteReq:同步写入数据到 ADS 服务器中并从 ADS 设备接收返回的数据。 AdsSyncReadStateReq:从 ADS 服务器中读 ADS 状态和设备状态。 AdsSyncAddDeviceNotificationReq:通知在 ADS 服务器中进行定义 (如 PLC)。当某个事件发生时 ,该功能 (回调功能) 在ADS 客户端进行调用 (C 程序)。 AdsSyncDelDeviceNotificationReq:从 ADS 服务器中删除以前定义的通知。 15 辅助工具TwinCAT ADS Monitor TwinCAT ADS Monitor可以抓取ADS通讯数据包 16 ADS数据结构 帧数据 通讯数据帧记录 辅助工具WiresharkPortable 17 可以抓取网络适配器上的数据,包括ADS EtherCAT等,但不 能抓取本地ADS数据包 辅助工具仿真器 1.下载文件: 以下路径为FTp路径() /Software/embPC-Control/CE/Solutions/CX_Emulator/ emulator.zip (CE仿真器英文) /Software/embPC-Control/CE/Solutions/SDK/Beckhoff HMI 500 V1.3 SDK.msi /Software/embPC-Control/CE/Solutions/VS_NET2005/CE5_DbgHlp.zip 2.仿真器安装: a.安装Microsoft Windows CE 5.0 Emulator.msi需要连接互联网 b.安装完仿真器,再安装虚拟网卡驱动netsvwrap.msi 3.配置: a.安装后修改StartEmulator_DE.bat 文件,将参数中的/Ethernet 的MAC改为本地网卡的 实际MAC地址 b.参数vmid 后的GUID值做为保存映像是的文件夹名称。 4.设置仿真器和VS.net集成环境: Windows CE 5 的模拟器是基于x86的,VS 2005 的 Device Emulator 是基于ARM的, VS2005开发环境无法和Win CE模拟器进行集成进行远程调试。 但是可以通过下面的方式实现集成: 1).将CE5_DbgHlp.zip压缩包文件解压复制仿真器的 hard disksystem 路径下(实际的 控制器新版本系统中这些文件已经存在) 2).运行Conmanclient2.exe 18 辅助工具仿真器(续) 3).配置VS2005开发环境: a.转到“Toolsoptionsdevice toolsdevices” b.选择Windows CE 5.0设备,点击“属性(properties)”按钮 c.在Windows CE 5.0设备属性对话框点击“配置(configure)”按钮 d.在TCP/IP配置对话框选定“使用特定的IP(use specific IP address)”,输入仿真器的 IP地址。 下面就可以Debug CE应用程序,选择部署到Windows CE5.0。如果部署仍然失败 ,运行仿真器hard disksystem 路径下的cMaccept.exe文件。 测试正常后保存仿真器的设置,载关闭时选择Save Sate而不是True Off, 这样下次启动仿真器就不需要重新设置仿真器。 如果想删除保存的文件,转到“我的文档My Virtual Machines下,将上文 提到的在 StartEmulator_DE.bat 设置的vmid 值为名称的文件夹删除即可。 如果在具体操作用什么问题,您可以随时和我们联系。 vs2008注意事项:用如下文件代替CE5_DbgHlp.zip 内的文件 C:Program FilesCommon FilesMicrosoft SharedCoreCon1.0Targetwce400x86 19 辅助工具仿真器(续) 最近刚刚发布了基于Microsoft Virtual PC的WinCE6.0仿真器,能够更真实的模拟我 们的硬件控制器。 20 PLC运行状态检测 1.HMI启动是需要检测PLC Server的启动状态 2.在运行中检测控制器的状态 举例: VS.NET: AmsRouterNotification AdsStateChanged 注:此两个事件只针对本地通讯有用(客户端和服务器端在同一个 PC上) 21 常用的GroupIndex 22 GroupIndex值描述 0x00004020M寄存器(用M声明) 0x00004021MX寄存器(用MX声明) 0x0000F020I寄存器(用I声明) 0x0000F021 IX寄存器(用IX声明) 0x0000F030Q寄存器(用Q声明) 0x0000F031QX寄存器(用QX声明) 0x0000F003 取变量的句柄 0x0000F005 通过变量句柄访问变量值 0x0000F006 释放句柄 1.对于MX,IX,QX寄存器的偏移地址的单位是“位”,而不是字节,计算地址需要注意 2.M寄存器偏移地址最大值为0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值为 0xFFFFFFFF。 3.上表后三个主要用于C语言,其他高级语言已经封装成专有方法,不需直接调用。 TwinCAT System COM Object 可以用来远程控制TwinCAT Service的停止,启动等操作 23 TwinCAT System Manager Automation Interface 可以实现System Manager的部分功能,如扫描IO,修改链接, 激活配置等。 实际应用举例: 一键式系统更新: 通过TwinCAT System Manager Automation Interface自动更 新系统配置信息(tsm文件) 通过PLC Control Command Line自动更新PLC程序(PRO) 24 TwinCAT ADS Modular Device Profile 基于ETG组织的Modular Device Profile 规范,可以对硬件等系统 模块进行监控和设置,比如显示分辨率,网卡的IP地址等。 具有和PLC和高级语言接口 有效: Windows CE 6.0 (image version 3.08 or higher) Windows XPe (image version 2.2 or higher) 25 WinCE下设置应用程序自启动的几种方法 一、利用WinCE的机制: 1.修改系统Init入口: 运行注册表编辑器, 开始(Start)运行(Run)输入“REGEDIT”然后确定,即打开注册表。 定位到HKEY_LOCAL_MACHINEinit 然后添加新项。比如: “Launch99“=“app.exe“ “Depend99“=hex:14 00 1e 00 32 00 50 00 5a 00 这个是设定启动顺序,launch后面的数字越大的越是后启动,Depend90后面的指定依赖项,为16进制,上面的 语句表明依赖项为launch20,launch30,launch60,launch80,launch90定义的项目。 device.exe和launch30中定义的gwes.exe, 注意Launch后面的数字范围为0到99 ,此范围之外的将不会有效果。 2.放在Windows启动中。 默认windows的启动文件夹被指向到windows下的startup文件夹,这个文件夹不是CF上的物理文件夹,所以不能 保存用户改动的东西,如果需要用到这个文件夹,需要修改注册表将这个系统文件夹位置修改到指向CF卡( 也就是Hard Disk)上的一个文件夹。 定位到HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders 修改Startup的值为Hard Disk上的一个文件夹,然后将应用程序的快捷方式放到这个文件夹,系统启动时即会自 动运行。相当于向开始菜单的启动中添加项目。 26 WinCE下设置应用程序自启动的几种方法 3.修改Autoexec.cmd文件 这个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论