课程中心
HOME
课程中心
正文内容
plc宏编程 威纶通触摸屏宏指令,PLC指令分类函数,详解与实操
发布时间 : 2025-03-18
作者 : 小编
访问数量 : 23
扫码分享至微信

威纶通触摸屏宏指令,PLC指令分类函数,详解与实操

视频加载中...

前面小节我们介绍过数学运算,字符串处理,数据转换,数据操作,宏控制分类函数,

这小节我们继续了解PLC分类下的函数,通过编写程序来实践。

宏指令在编写过程当中我们可以使用PLC相关的函数控制与触摸屏连接的硬件,

读取硬件数据,也可以向硬件写入数据,当然也可以读写触摸屏自己寄存器的数据。

这类函数共有5个,分别是 GetData,GetDataEx, SetData, SetDataEx, GetError。

下面是每个函数的介绍。

1.GetData。

函数用于从PLC等硬件读取数据,实际使用频率非常高。

例如int result[2],result1

GetData(result[0], "FATEK FB Series", D, 0, 1)

此函数从永宏PLC(FATEK FB Series)读取数据,

读取的寄存器起始地址为 D 0,

读取的数据个数为1个,

结果保存在result数组里,我们传递的数组元素类型为int,所以读取数据为1个整数。

这里的硬件名称” FATEK FB Series”为我们在编程软件里添加的硬件,

在创建一个触摸屏项目时会提示添加硬件,

默认只有触摸屏一个硬件,名称为“Local HMI”。

然后是硬件的寄存器地址,我们知道PLC一般都有X,Y,M,D等类型寄存器,

每种寄存器都有很多供使用,比如D0表示第0个数据寄存器,

在这个函数中就可以传递寄存器类型加索引来访问,

另外还有一种情况,一屏多机时,可以修改寄存器索引使用形式。

例如,我们修改为

GetData(result[0], "FATEK FB Series", D, 2#0, 1)

表示读取第二台plc的D0数据,上面函数中的2表示PLC站号,

只有一个PLC可以不填写。

用于存储结果的变量,可以是一个数组变量,也可以是一个单一变量,

变量类型可以是short,int,float,或bool。

例如下面代码表示读取触摸屏LB0的状态。

Bool result

GetData(result, " Local HMI ", LB, 0, 1)

例如下面代码表示读取触摸屏LW0开始的两个short数据。

short result[2]

GetData(result, " Local HMI ", LW0, 2)

例如下面代码表示读取触摸屏LW0开始的1个浮点数据。

浮点数占用4个字节,所以这里实际读取了LW1,LW0到变量result里。

Float result

GetData(result, " Local HMI ", LW, 0, 1)

2. GetDataEx。

这个函数与GetData使用上是一致的,只是触摸屏在执行这个函数时,

不会等其执行完返回,再往下执行其他代码。

这个功能和前小节介绍的异步调用宏指令,概念上是相似的。

我们知道PLC与触摸屏通讯时,有可能受到干扰,延时响应的,

这个函数可以不等PLC响应,径直执行其他代码,防止程序阻塞。

函数执行的结果可以使用,GetError获取,不为0表示未正确执行。

3. SetData。

有数据获取,对应就有数据设置。

这个函数用于将指定数据写入到PLC等硬件中。

例如下面代码,实现将123写入到触摸屏LW1寄存器中,共写入1个整数。

Int nValue=123.

SetData(nValue, "Local HMI", LW, 1, 1)

参数的含义与函数GetData一致。

4. SetDataEx。

这个函数和SetData在使用上一致,触摸屏在调用这个函数时,

也不会等待其执行完成再执行其他函数。

同样也可以通过函数GetError获取执行结果,不为0表示未正确执行。

5. GetError.

此函数获取其他函数执行结果。

可以在SetDataEx,GetDataEx执行后调用。

从而判断函数执行是否成功。获得错误代码为0表示成功,其他表示不成功。

例如

short nValue

SetDataEx(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)

int error

GetError(error)

如果上面的函数SetDataEx执行成功,则error为0,不然为非0值。

GetDataEx执行失败,GetError(error) ,error=1

SetDataEx执行失败,GetError(error) ,error=2

我们可以在编写宏指令,编程软件里测试测试这几个函数的功能。

在界面上添加三个数值显示元件,地址LW0用于输入设置值,地址LW1用于显示设置值,

地址LW2用于显示错误代码,再添加宏调用元件,测试编写的宏代码。

界面如下图。

宏指令如下,可以使用屏蔽的代码测试。

macro_command main()

short nValue=123

//GetDataEx(nValue, "Local HMI", LW, 0, 1)

//GetDataEx(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)

SetDataEx(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)

int error

GetError(error)

if(0== error) then

//SetData(nValue, "Local HMI", LW, 1, 1)

else

SetData(error, "Local HMI", LW, 2, 1)

end if

end macro_command

关于西门子12001500PLC的一些编程技巧

下面是XXX工程师的感受分享,可以作为参考!

1、 指令分为单扫描周期指令和多扫描周期指令。对于多扫描周期指令,如果EN或者REQ只使能一个扫描周期,该指令不能成功执行;例如大多数的通信指令;

2、 FB块的输入输出形参存储于背景数据块中,在调用该FB时实参可选;而FC块的输入输出是临时内存,必须指定实参才能运行;

3、 FB块的输入输出虽不是静态变量,但亦有保持功能,具体视程序而定;

4、 注意变量被多次赋值时的先后顺序!因为变量的值总会被最后执行动作更新,前面的值将被覆盖;例如下图:

程序初衷为当接受响应完成时ERR置位,或响应超时ERR置位。上述程序是可以完成正常功能的;但若二者互换,如下图:

接收超时时,ERR不会置位,因为rev_done为0,ERR被复位!

5、 STEP 7中的梯形图操作数、能流的监控特征色(蓝绿)、以及监控表中的布尔变量的刷新频率有限,可能不能反映真实的实时运行状况,可借助一个累加器来监视程序的运行状态;例如下图:

6、 单个扫描周期中,一个布尔变量的上升/下降沿只能读取一次;因为读取一次之后,其Pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化;

7、 数组访问越界将导致CPU错误,ERR灯闪烁;

8、 单扫描周期指令的循环操作是在单扫描周期完成的;

9、 多使用宏定义,可使程序易读、方便修改;

10、 关于能流:(1)能流流经某个具备EN和ENO的指令,并不一定代表该指令功能执行完成,只代表该扫描周期扫描完成;(2)算数运算、bool变量操作等单扫描周期指令的ENO输出代表该指令执行完成。

11、 FB/FC的EN端将为能流提供扫描通道,EN端断路,能流无扫描通路,内部变量将不再刷新,即该函数不再执行;当FB/FC的EN端总是使能,Enable输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新;请注意二者区别;例见下图:

前者FB12内部的变量总会被扫描,而后者在M3.0或DB_Valve.done为1时,内部变量不会被扫描;相应的,前者done变量将被下一扫描周期置0,而后者done置1后将因能流不通不能扫描而自行保持;

转发是最大的鼓励!谢谢您的支持!

小贴士

PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!

免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!

如何获取更多 电气热门资料?

操作指引如下!

相关问答

威纶通宏命令是什么语言?

威纶通宏命令是一种基于Windows操作系统的脚本语言,通常用于自动化控制和管理计算机系统。该语言可以通过编写脚本程序来实现批量处理、文件管理、网络通信等...

omron中的宏指令怎样设置?

首先在CX-Protocol软件中设定宏指令,然后通过PLC中的宏命令进行调用首先在CX-Protocol软件中设定宏指令,然后通过PLC中的宏命令进行调用

新代ez3t支持宏程序吗?

不支持宏程序。因为新代EZ3T是一款普通的烤箱控制器,按照其说明书上的介绍,没有提到可以支持宏程序。宏程序是一种较为高级的程序设置方式,需要相应的硬件和软...

西门子V20变频器连接宏什么意思?

连接宏是指在西门子V20变频器中,通过编程设置一些特定的参数和逻辑,使其能够与其他设备进行通信和控制。连接宏的作用是实现变频器与其他设备的联动和协调工作...

3菱系统西格马车床怎样编程?

西格玛数控车床,沈阳产,采用日本三菱E60伺服系统,支持宏编程,还具备PLC功能,主轴无级变速,X,Z轴与一般不同的是采用滚柱丝杠,能很好的控制精度和机床延长...

欧姆龙PLC编程指令与梯形图快速入门的目录?

去京东上搜索这本书,然后下边的商品介绍中就有这本书的目录的。京东上给出的本书的目录如下:第1章PLC编程软件与仿真软件1.1编程软件CX-Programmer1.1...3...

fanuc加工中心宏程序简单的遍程实例?

2、按对应屏幕底部“密码”的键,进入密码画面,输入”admln”,按确认键,屏幕左下角会显示”密码正确”。3、按”程控”键,再按屏幕底下对应”PLCPAR”键,...

ab系列plc变量命名规则?

AB系列PLC变量命名规则通常包括以下几个方面。首先,变量命名应具有描述性,能够准确反映其功能、用途或特性,方便后续维护和阅读代码。其次,变量命名应使用...

大佬们求解宁德永宏plc公司联系方式,永宏plc外观怎么样??

[回答]1、永宏PLC的编程软件目前现在还没有仿真功能。2、联机成功,即表示现在已经在监控状态,监视页里的R0和R1是暂存器,用来储存数值的,和普通的暂存器一...

西门子1200中OB块的功能?

西门子1200系列PLC中的OB块是指组织块(OrganizationalBlock),其主要功能是用于存放循环、中断、定时器、计数器、报警等控制逻辑。OB块分为OB1、OB35、OB100...

 2023今天刚刚甘肃省发生地震  office2019 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部