首页 > 编程语言 >twincat3编程规范

twincat3编程规范

时间:2023-09-05 11:57:47浏览次数:47  
标签:语句 变量 编程 数据类型 twincat3 规范 枚举 功能块 全局变量

twincat编程遵循IEC61131-3标准

1.声明变量及数据类型:

  • 变量名不区分大小写;
  • 变量名首字符是字母或下划线,由字母、数字、下划线组成;
  • 变量名不能包含空格、连续下划线、特殊字符;
  • 声明输入输出变量,例如: regwordout  AT%Q*  :WORD;    regwordin  AT%I*  :WORD;
  • 断电保持变量PERSISTENT:在PLC关机时保存,PLC上电后读取。调用功能块Tc2_Utilities.LIB、FB_WritePersistenData;
  • 初始化常量

2.关键字

  • IEC61131-3标准中的关键字不能做为变量名、功能块名,如AND、INT、STRUCT、FUNCTION;
  • 关键字在程序中自动显示为蓝色大写。

3.注释

 4.基本数据类型

  • bool\byte\word数据类型

  • int数据类型

U无符号,S短,D双,Prefix:前缀,用于标识变量和常量的数据类型。

  • 浮点型数据类型

REAL32位,LREAL在倍福3中才支持。

  • 日期时间数据类型

TIME可精确到毫秒,Prefix前缀常用。

  • string字符串类型

支持ASCII表,最大255个字符,一个字符1字节(8位),string字符必须带/0结束符(长度+1)。

  • wstring字符串类型

twincat3新增,支持unicode、多国语言、特殊字符,一个字符2字节(16位),ASCII表意外的字符就需要用到wstring类型。

  • 数组类型

可以将结构体做为数组元素,如:Positions:ARRAY[100] OF DrillPos;DrillPos为结构体名称,数组中每一个元素都是一个结构体。

通过功能块CheckBounds可以检查下标是否超范围,如果下标越界,自动把多余的值赋给最后一个元素。

 5.溢出

  • 变量超出数据类型长度范围导致溢出

 

6.常用功能块-读取系统时间并转换为其他格式

  • 导入功能函数库;

     

  • 变量定义后按下F2快捷键;

  •  点击active configration--login--start,使能后点击Write values;

  •  systemtime1转化为dt格式,dt格式转化为tod格式。

7.字符串处理

  • 查询-FIND

  •  替换-REPLACE

 

 8.全局变量和局部变量

  • 局部变量只能用在我们声明变量所在的块或程序内,全局变量可以用在一个项目的多个块中;

      

  • 在程序B中声明的固定地址变量,在程序A中可以通过固定地址读取,值不变;

  •  全局变量与局部变量重名时,可通过命名空间与变量名的组合进行访问,如Gvl1.Var1为全局变量,Var1为局部变量;

9.自定义数据类型

  • 别名

      

如果一个全局变量的声明发生改变,则在功能块中的所有声明都要发生改变,此时就需要用别名统一修改。

也可以通过软件界面右击DUTs文件夹新增。

  

  • 枚举类型

由于枚举名字的区别,相同的枚举量可以使用两次。例如Woche.Dn,Richtung.Dn.

默认从0开始枚举。

    

  • 结构体,将同一类变量放在一起为一个结构体

结构体调用之前需要在变量声明区进行实例化,如:KL5101_OUT1:KL5101_OUT;

调用:KL5101_OUT1.Ctrl:=1;

  • 共用体,共用体中变量使用同一内存,可以分离一个变量

10 .运算优先级

 11.常用指令

  • 条件语句-IF ELSE

  •  选择语句-CASE

CASE语句与IF语句结合使用

枚举形式表示CASE语句

  •  循环语句-FOR/WHILE/REAPET,三种循环都可以exit退出

FOR循环,BY表示步长;

WHILE循环,while语句后的表达式为True则一直循环;

REAPET循环,直到循环语句为True才退出循环,先执行后判断。

 

 

 

 

愿景: 1.让后人不必再走吃苦探寻真理的老路 2.健全自身价值体系,找到本我 3.报效善育之恩、关爱之恩 4.尽长辈之责,树立榜样,传递普世价值观 5.了解社会,商业运行真相

标签:语句,变量,编程,数据类型,twincat3,规范,枚举,功能块,全局变量
From: https://www.cnblogs.com/lzcnblogs/p/17671458.html

相关文章

  • git-cz 代码提交统一规范配置
    主要插件commitizen:代码提交辅助工具commitlint:代码校验工具husky:githook插件lint-staged:前端文件过滤工具,只检测暂存区代码cz-customizable:自定义提交配置安装步骤1.环境准备git版本,笔者使用gitforwin2.27.0相关钩子无发现问题,也建议>=2.27.0版本,低版......
  • Microsoft Visual Studio 2022(编程工具)下载 中文版介绍
    微软强调VisualStudio2022将完全支持.NET6及其统一框架,用于Windows和Mac开发者的Web、客户端和移动应用程序。软件地址:看置顶贴软件功能一、开发:编写没什么错误的代码遇到困难时使用IntelliSense代码建议快速准确地键入变量。无论导航到所需的任何文件、类型、成员......
  • 大厂都在用的Git代码管理规范(转)
    以下文章来源于码农参上 ,作者DrHydra码农参上.专注后端技术分享,有趣、深入、直接,与你聊聊技术。将 脚本之家 设为“星标⭐”第一时间收到文章更新 来源:码农参上(ID:CODER_SANJYOU)作者:DrHydra分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确......
  • 21-面向对象编程-多态参数
    多态参数方法定义的形参类型为父类类型,实参类型允许为子类类型 员工类(父类):publicclassEmpolyee{privateStringname;privatedoublesalary;publicEmpolyee(Stringname,doublesalary){this.name=name;this.salary=salary;......
  • MASM32编程状态栏显示字符动画,按钮跑马灯
    一、需求分析由于sysInfo扫描的内容比较多,打算为它增加一点动画效果,提醒用户程序正在运行,耐心等待。二、构建测试窗口测试窗口上放置有一个按钮,按钮上的初始文字是“开始扫描”;并使用状态栏,状态栏初始状态不显示文字。;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<......
  • Git代码管理规范
    Git代码管理规范分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。master分支一般由release以及hotfix分支合并,任何时间都不能直接修改代码。develop分支develop为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前......
  • go并发编程系列七:开学季抢票返程
    背景:学校开学,3位同学要买票回校上课了,就有了这样一个购票程序,当然,实际情况复杂的多,本文仅供参考。packagemainimport("fmt""sync")typeTrainstruct{stationmap[string]intmusync.Mutex}funcNewTrain()*Train{return&Train{station:......
  • Java 编程中的魔法之门:探索I/O流的奇妙世界
    文章目录什么是I/O流?I/O流的层次结构1.字节流(ByteStreams)2.字符流(CharacterStreams)3.缓冲流(BufferedStreams)4.数据流(DataStreams)5.对象流(ObjectStreams)I/O流的应用场景1.文件操作2.网络通信3.用户输入输出4.数据持久化5.图像、音频、视频处理示例:读写文件数据总......
  • Python接口编程:理解、设计和实现
    在当今的软件开发世界中,接口(API)是应用程序之间进行数据交换和通信的关键方式。这种通信可以在同一应用程序的各组件之间,也可以在完全不同的系统和平台之间进行。Python作为一种功能强大的编程语言,因其易用性和丰富的库而广泛用于开发接口。理解接口在计算机科学中,接口通常是一种定......
  • IDL学习笔记(1)--可视化组件编程
    作者:fbysss关键字:IDL!开头的是一些内置变量,比如!PI,!PATH等按Ctrl+Space可以打开代码提示发布可执行文件只能使用MAKE_RT命令,而不是Export菜单WIDGET_BASE这个函数是窗口程序的基础。所有窗口元素都放置在WIDGET_BASE返回的窗口上。base=WIDGET_BASE(/ROW,TITLE='标题')表示......