[西门子] 关于威纶通宏指令的2份实用案例,拿好不谢~

[复制链接]
查看7357 | 回复0 | 2024-1-1 11:09:33 | 显示全部楼层 |阅读模式


威纶通宏指令控制PLC点位断电保持的案例

触摸屏是TK6070iP ,PLC是欧姆龙CP系列

需要达到的目的:触摸屏上的按钮按下时,同时控制PLC上的点动作

EB8000提供了可以掉电保存的寄存器RW和RW_A两种寄存器来实现配方的保存和传送。在此选择了保持寄存器的位地址为RW_Bit 2(具体地址可以自主选择,只要选择的寄存器可以断电保持的就可以);

威纶通的触摸屏无法直接通过屏幕上的按钮控制PLC的实际输入点,需要通过中间变量点(非PLC的实际输入点)来实现控制,在此选择中间变量点CIO_Bit 19.10

一、在屏幕新建一个“位状态切换开关”元件,各设置如下



二、为了在测试时便于观察,可以在屏幕上新建两个位状态指示灯







三、因为断电保持的是RW_Bit 2的数据,而CIO_Bit 19.10不能保持,所以需要另外一个宏指令上电时读取RW_Bit 2的数据,并且写入CIO_Bit 19.10。新建一个“位状态设置”元件。(要把此元件放在触摸屏上电开机之后的第一页面中)



这里的位地址不一定要用RW_Bit只要不和其他数据地址冲突就可以使用。

四、宏指令

[ID:000] Macro_0

macro_command main()

bool d

GetData(d, "Local HMI", RW_Bit, 2, 1)

if d==1 then

SetData(d, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)

else if d==0 then

SetData(d, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)

end if

end macro_command

[ID:002] Macro_2

macro_command main()

bool e,f,h

h=1

GetData(e, "Local HMI", RW_Bit, 2, 1)

if e==1 then

f=0

SetData(f, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)

else if e==0 then

f=1

SetData(f, "OMRON CJ/CS/CP", CIO_Bit, 19.10, 1)

end if

SetData(h, "Local HMI", LB, 9029, 1)

end macro_command

在宏指令macro_2中使用的SetData(h, "Local HMI", LB, 9029, 1),是为了让数据能够实时的保存,而不用等待1分钟(MT8000会每隔1分钟将配方数据RW或RW_A存放至机器的内部存储器)
威纶通触摸屏宏指令举例:加法运算

一、在10号窗口,放三个数值原件地址分别为LW0,LW1,LW2,格式选择为16位无符号



二、在宏指令窗口建立加法的算法,其中//为其加的注释



运行效果如图



说明:触发宏指令的条件有多种,本文试举三种:功能键触发、位状态原件触发、PLC触发




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则