PLC编程软件开发:GX Works2_(11).程序结构与组织.docx

PLC编程软件开发:GX Works2_(11).程序结构与组织.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

程序结构与组织

在PLC编程中,程序结构与组织是非常重要的部分。合理的程序结构不仅可以提高代码的可读性和可维护性,还能有效地管理复杂的控制逻辑。本节将详细介绍如何在GXWorks2中组织和管理PLC程序,包括项目结构、程序块的类型和使用方法、以及如何使用标签和注释来提高代码的可读性。

项目结构

在GXWorks2中,项目的结构是非常规范化的,每个项目都包含多个不同的文件和文件夹。理解这些结构有助于更好地组织和管理您的程序。

项目文件夹

项目文件夹:每个项目都有一个主文件夹,其中包含了所有的项目文件和子文件夹。

程序文件夹:包含PLC程序的各种文件,如主程序、子程序、中断程序等。

数据文件夹:包含数据文件,如符号表、数据表等。

库文件夹:包含常用的库文件,如函数库和模块库。

项目文件

.P文件**:主项目文件,包含了项目的配置信息。

.SRC文件**:源代码文件,包含了具体的程序逻辑。

.DAT文件**:数据文件,包含了符号表和数据表。

.LIB文件**:库文件,包含了常用的函数和模块。

项目配置

在GXWorks2中,项目配置是非常重要的一步。合理的配置可以确保您的程序在PLC中正确运行。

CPU选择:根据您的PLC型号选择合适的CPU类型。

通信设置:配置PLC与上位机的通信方式,如以太网、串口等。

输入输出设置:配置PLC的输入输出模块,确保信号的正确读取和输出。

示例

假设我们有一个项目,需要控制一个简单的生产线。项目结构如下:

-MyProject

-Program

-MainProgram.SRC

-SubProgram1.SRC

-SubProgram2.SRC

-Data

-SymbolTable.DAT

-DataTable.DAT

-Library

-CustomFunctions.LIB

-MyProject.P

在这个项目中,MainProgram.SRC是主程序文件,SubProgram1.SRC和SubProgram2.SRC是子程序文件,SymbolTable.DAT是符号表文件,DataTable.DAT是数据表文件,CustomFunctions.LIB是自定义函数库文件,MyProject.P是主项目文件。

程序块的类型和使用方法

在GXWorks2中,程序块是PLC程序的基本构成单元。不同的程序块类型有不同的用途和使用方法。理解这些类型并合理使用它们,可以有效地组织和管理您的控制逻辑。

主程序块

主程序块是PLC程序的入口点,通常包含主要的控制逻辑。在GXWorks2中,主程序块通常命名为MainProgram。

示例

//主程序块MainProgram.SRC

voidMainProgram(void)

{

//初始化

Initialize();

//主循环

while(1)

{

//读取输入

ReadInputs();

//执行控制逻辑

ControlLogic();

//写入输出

WriteOutputs();

//延时

Delay(100);

}

}

//初始化函数

voidInitialize(void)

{

//初始化变量

boolisMachineRunning=false;

//初始化输入输出

//假设输入输出模块的地址分别为X0和Y0

SetInputAddress(0);//X0

SetOutputAddress(0);//Y0

}

//读取输入函数

voidReadInputs(void)

{

//读取输入信号

boolinputSignal=GetInput(0);//读取X0的状态

}

//控制逻辑函数

voidControlLogic(void)

{

//控制逻辑

if(inputSignal)

{

isMachineRunning=true;

}

else

{

isMachineRunning=false;

}

}

//写入输出函数

voidWriteOutputs

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档