使用Microsoft Visual C++实现对TwinCAT3 PLC状态的读取和控制.docxVIP

  • 18
  • 0
  • 约4.11千字
  • 约 12页
  • 2024-04-12 发布于福建
  • 举报

使用Microsoft Visual C++实现对TwinCAT3 PLC状态的读取和控制.docx

PAGE

PAGE

PAGE1

Forquestionsorcomments,emailsupport@

作者:

王子鹏

上海市江场三路市北工业园区

163号5楼(200436)

TEL:021FAX:021日期:

2018-7-10

版本:

V1.1

E_mail:

Support@

使用MicrosoftVisualC++实现对TwinCAT3PLC状态的读取和控制

概述

使用MicrosoftVisualC++软件,实现对TwinCAT3PLC状态的查询,并控制PLC的启动/停止

本次测试所用的TwinCAT3版本为4022.22,用到的VisualStudio版本为2017Community。

文档中包含的文件

文件名称文件说明

TcAdsDll.lib

为了使用TcAdsDll.dll所要联接的库

TcAdsDef.h

结构体和常量的声明

TcAdsApi.h

ADS函数的声明

C++

C++程序源文件

PLC

PLC源文件

备注

关键字:高级语言程序对PLC程序的读和写

免责声明

我们已对本文档描述的内容做测试。但是差错在所难免,无法保证绝对正确并完全满足您的使用需求。本文档的内容可能随时更新,也欢迎您提出改进建议。

文档内容可能随时更新

如有改动,恕不事先通知

通过C++程序读取/控制PLC的状态

(PLC状态读取)编写PLC程序

打开TwinCAT3,新建一个TwinCatProject,完成后鼠标右键点击左菜单栏中的PLC选项选择AddNewItem,选择StandardPLCProject建立标准PLC项目

展开左菜单栏中Project-POUs选项,双击选择编辑MAIN(PRG),完成后效果如下

3.在变量声明区定义一个名称为BOOL1的BOOL型变量,并赋予其地址“AT%MX0.0”,在程序代码区中输入一个“;”

4.编写完程序后,我们BUILD程序并激活,LOGIN建立851端口通讯,并启动PLC程序。

(PLC状态读取)编写C++程序

5.首先我们启动VisualStudio2017,新建一个项目。点击窗口左上方菜单栏的文件-新建-项目。出现窗口如下图所示。我们选择VisualC++中的Windows控制台应用程序选项。输入项目名称(我们这里起名为:Samples)并选择为解决方案创建目录。点击确定。

6.此时我们需要添加链接库,以便实现通讯中用到的各种函数的直接调用。我们在左侧找到我们所建立的项目处,点击右键-属性。效果如下图。

7.选择配置属性-链接器-常规-附加库目录-编辑,进入附加包含目录的编辑界面。如下图所示,添加我们的程序的所在目录(C:\TwinCAT\AdsApi\TcAdsDll\Lib),点击确定。(本路径是以安装TwinCAT3时的默认路径配置的,若用户在安装时选择自定义路径,则请用户自行修改)

8.再选择链接器-输入-附加依赖项,点击右边的按钮选择编辑进入附加依赖项界面。如下图所示添加我们的.lib文件的文件名(TcAdsDll.lib),点击确定。再次点击确定,链接库添加完成。

9.此时我们还需要将头文件加入,点击解决方案下的Samples-头文件-stdafx.h,双击打开。向其中添加头件,如下图所示(tcAdsDef.h和TcAdsApi.h)。因为头文件没有复制到程序目录,所以在前面加上了头文件所在地址。接着我们再次向程序添加头文件(iostream、windows.h、conio.h)。效果如图:

代码:

//添加头文件

#includeiostream //标准的输入输出流头文件

#includeconio.h //控制台输入输出头文件

#includewindows.h //windowsAPI的函数声明和宏

#includeC:\TwinCAT\ADSApi\TcAdsDll\Include\TcAdsDef.h//结构体和常量的声明

#includeC:\TwinCAT\ADSApi\TcAdsDll\Include\TcAdsAPI.h//ADS函数的声明

10.接下来我们开始编写主程序

代码:

#includestdafx.h

usingnamespacestd;

voidmain()

{

USHORTnAdsState; //包含PLC的状态信息

USHORTnDeviceState;

longnErr,nPort;

AmsAddr

文档评论(0)

1亿VIP精品文档

相关文档