【原创教程】西门子_部件手动模式FB块编辑

1、软件配置

软件配置

名称

版本

博图

V16

2建立FB块

在编辑手动程序前应该建立手动程序的FB块,FB块的建立内容如下图所示

FB块的输入接口

Input:FB块的输入接口,将下拉列表中的数据应用于该FB块所编辑的程序中。

NO:当前部件的编号,由于在设备中有多个部件,为了精准的控制到每一个部件,所以对每个部件都给一个编号。

假如设备中有10个部件要进行操控,我们对其进行”1-10”的编号处理,其中”某部件名称X”是第6个,我们可以将”NO”的值设定为”6”。

HomePos:当前部件的原位到位信号,经常用输入信号”I”点来表示,如果该部件没有输入信号”I”点,也可用其他方式来表达。

WorkPos:当前部件的工作位到位信号,经常用输入信号”I”点来表示,如果该部件没有输入信号”I”点,也可用其他方式来表达。

OutMode:当前部件的动作方式,当该部件需要执行到”原位动作”或”工作位动作”时,通过”OutMode”的设定值来决定哪种动作方式。

目前有5种动作方式:

1、部件如何操作都不会执行任何动作。(部件不执行输出动作)。

2、当部件满足某个执行动作的条件后,会一直执行该动作。(部件会一直执行某个输出动作)。

3、当部件执行动作后,如果中途执行动作的条件不满足,则会立即停止该动作。但是当部件的动作执行到位后,会一直执行该动作。

(部件执行输出动作后,中途能够停止;但是当动作到位后,部件会一直执行该输出动作)。

4、当部件执行动作后,如果中途执行动作的条件不满足,则会立即停止该动作。(部件执行输出动作后,中途能够停止)。

5、当部件执行动作后,如果中途执行动作的条件不满足,则会立即停止该动作,当部件动作执行到位后,会立即停止执行中的动作。

(部件执行输出动作后,中途能够停止,当动作到位后,部件会立即停止执行该输出动作)。

ErrorMode:当前部件报警模式,通过”ErrorMode”的设定值来决定报警模式的选择。

目前有5报警模式:

1、部件不会出现任何报警。

2、部件在执行某个动作前,如果不满足执行该动作的安全条件,则会触发”安全互锁”报警。

3、部件在执行某个动作前,如果不满足执行该动作的安全条件,则会触发”安全互锁”报警;部件在执行某个动作后,如果执行该动作的时间超过,设定的报警时间”ErrorTime”,则会触发”动作超时报警”。

4、部件在执行某个动作前,如果不满足执行该动作的安全条件,则会触发”安全互锁”报警;部件在执行某个动作后,如果执行该动作的时间超过,设定的报警时间”ErrorTime”,则会触发”动作超时报警”;部件的原位到位信号和工作位到位信号同时”ON”,则会触发部件的”原位工作位双ON”报警。

5、部件在执行某个动作前,如果不满足执行该动作的安全条件,则会触发”安全互锁”报警;部件在执行某个动作后,如果执行该动作的时间超过,设定的报警时间”ErrorTime”,则会触发”动作超时报警”;部件的原位到位信号和工作位到位信号同时”ON”,则会触发部件的”原位工作位双ON”报警;部件在动作执行完成后,会生成一个到位状态用来表示已到达原位或工作位,在该状态存在期间如果丢失了到位信号,则会触发部件的”到位信号丢失”报警。

ErrorCode:当前部件报警的起始编号,根据”ErrorCode”的值,当前的报警程序编号规律如下: Alarm2[ErrorCode+0].该部件的”原位动作安全互锁不满足”报警

Alarm2[ErrorCode+1].该部件的”工作位动作安全互锁不满足”报警

Alarm2[ErrorCode+2].该部件的”原位动作超时”报警

Alarm2[ErrorCode+3].该部件的”工作位动作超时”报警

Alarm2[ErrorCode+4].该部件的”原位工作位双ON”报警

Alarm2[ErrorCode+5].该部件的”原位到位信号丢失”报警

Alarm2[ErrorCode+6].该部件的”工作位到位信号丢失”报警

假设”ErrorCode”的值为60,那么

Alarm2[60].该部件的”原位动作安全互锁不满足”报警

Alarm2[61].该部件的”工作位动作安全互锁不满足”报警

Alarm2[62].该部件的”原位动作超时”报警

Alarm2[63].该部件的”工作位动作超时”报警

Alarm2[64].该部件的”原位工作位双ON”报警

Alarm2[65].该部件的”原位到位信号丢失”报警

Alarm2[66].该部件的”工作位到位信号丢失”报警

ErrorTime:当前部件报警时间,当部件执行动作的时间超过”ErrorTime”时,该部件则会触发”动作超时报警”。

OPMode:当前设备的运行模式。

②FB块输出接口

Output :FB块的输出接口,将下拉列表中的数据应用于该FB块所编辑的程序中。

HomeAck:当前部件的原位动作输出引脚,当”HomeAck”ON后则会导通其引脚后的线圈。

WorkAck:当前部件的工作位动作输出引脚,当”WorkAck”ON后则会导通其引脚后的线圈。

Static:FB块中运用到的变量,将下拉列表中的数据应用于该FB块所编辑的程序中。

sTempBit:FB块的数组,由10个整数类型的缓存区构成,每个单独的缓存区都可以当做做一个”D区”来使用,下拉内容有:

sTempNO:FB块的数组,由10个整数类型的缓存区构成,每个单独的缓存区都可以当做做一个”D区”来使用,下拉内容有:

3FB块程序的构建

部件到位信号

正常情况下,每个部件都有一个”原位到位信号_HomePos”和”工作位到位信号_WorkPos”,我们通常都会使用外部传感器的信号传递”到位信号”。

然而有些情况下,某些部件会没有外部传感器来传递”到位信号”,所以我们只能通过程序手段来表达部件已经动作到位。

上图的程序中,我们用到了”ErrorMode”中的值来判断该部件是否有外部传感器来传递”到位信号”,当”ErrorMode”的值为”11”时,我们认为该部件没有外部传感器来传递”到位信号”,当”ErrorMode”的值不为”11”,该部件由外部传感器来传递”到位信号”。

②部件动作模式

由于每种部件的功能不同,有的部件需要一直有动作输出,有的部件需要到位后保持输出,有的部件需要随时停止动作输出,这些状况我们可以理解为部件的”动作模式”不同,根据”部件动作模式”的不同,我们要对部件的动作程序进行编辑。

这里我们可以用”OutMode”中的”值”来表示”部件动作模式”,以此来编辑程序。

1、”OutMode”值为”0”时,部件不会产生任何动作

2、”OutMode”值为”1”时,部件在执行某个动作后【"DB3100_Manual".Manual[#NO].Code】值会变为”1”或”3”,会一直执行这个动作。

3、”OutMode”值为”2”时,部件在执行某个动作后【"DB3100_Manual".Manual[#NO].Code】值会变为”2”或”4”,该动作在没钱到位前,中途可以停止。

如果动作执行到位后【"DB3100_Manual".Manual[#NO].Code】值会变为”1”或”3”。

4、”OutMode”值为”3”时,部件在执行某个动作后【"DB3100_Manual".Manual[#NO].Code】值会变为”2”或”4”,可以随时停止执行该动作。

5、”OutMode”值为”4”时,部件在执行某个动作后【"DB3100_Manual".Manual[#NO].Code】值会变为”2”或”4”,如果动作执行到位后【"DB3100_Manual".Manual[#NO].Code】值会变为”0”。

下图程序表示:【"DB3100_Manual".Manual[#NO].Code】的值在不同的情况下,该部件”动作输出”信号的变化。

下图程序表示:当设备出现1级报警时,【"DB3100_Manual".Manual[#NO].Code】的值变为”0”,此时该部件的动作将全部停止。

下图程序表示:当【"DB3100_Manual".Manual[#NO].Code】的值为”2”或”4”时,将其值变为”0”。当操作者在触发部件动作时,【"DB3100_Manual".Manual[#NO].Code】的值仍会变为”2”或”4”,这段程序的目的是,在【"DB3100_Manual".Manual[#NO].Code】的值为”2”或”4”的情况下,操作者停止触发动作后,将【"DB3100_Manual".Manual[#NO].Code】的值变为”0”动作将终止。

下图程序表示:该部件的输出动作都设定为”FALSE”,而外部输出接口”#HomeAck”和”#WorkAck”的状态由下图程序中的状态决定。

只有当【"DB3100_Manual".Manual[#NO].Code】的值变为”1”或”2”或”3”或”4”时,该部件才会有相应的动作。这段程序的目的是,【"DB3100_Manual".Manual[#NO].Code】的值的变更,能够决定执行哪个动作或者终止哪个动作。

③部件动作到位状态

当部件执行到原位动作时,将”在工作位状态”复位,当检测到”原位到位信号”后,置位”在原位状态”。

当部件执行到工作位动作时,将”在原位状态”复位,当检测到”工作位到位信号”后,置位”在工作位状态”。

当设备断电后,将部件的”在原位状态”和”在工作位状态”复位。

如果检测不到”原位到位信号”,则将在”在原位状态”复位;检测不到”工作位到位信号”,则将在”在工作位状态”复位。

④部件动作计时功能

当部件执行”到原位动作”或”到工作位动作”时开始计时,程序中我们以【"DB3100_Manual".Manual[#NO].HomeTime】中的值来表达”到原位动作”已经执行的时间,以【"DB3100_Manual".Manual[#NO].WorkTime】中的值来表达”到工作位动作”已经执行的时间。

当部件不在执行”到原位动作”或”设备断电”或检测到”原位到位信号”,”到原位动作计时清零。

当部件不在执行”到工作位动作”或”设备断电”或检测到”工作位到位信号”,”到工作位动作计时清零。

⑤部件的报警功能

当设备上电后,启用报警功能。

报警复位:如果按下报警复位按钮,将该部件的10个报警全部复位。

FOR的循环程序可以如下理解,报警复位按钮按下后,”sTempNO[1]”中的值从”0”到”9”开始变化,每次递增”1”,进行十次循环;而”ErrorCode ”的值,根据用户的输入为准。

以”ErrorCode”值为”60”为例子 :

第①次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 0]】复位

即【"DB160_OP10_Alarm".Alarm2[60]】复位

第②次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 1]】复位

即【"DB160_OP10_Alarm".Alarm2[61]】复位

第③次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 2]】复位

即【"DB160_OP10_Alarm".Alarm2[62]】复位

第④次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 3]】复位

即【"DB160_OP10_Alarm".Alarm2[63]】复位

第⑨次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 8]】复位

即【"DB160_OP10_Alarm".Alarm2[68]】复位

第⑩次循环:按下按钮后,【"DB160_OP10_Alarm".Alarm2[#ErrorCode + #sTempNO[1]]】复位即【"DB160_OP10_Alarm".Alarm2[60 + 9]】复位

即【"DB160_OP10_Alarm".Alarm2[69]】复位。

以上内容就是报警复位的程序。

以下内容是会有哪些报警发生。

1、当”#ErrorMode”的值为”0”时,该部件的10个报警全部取消。

2、当”#ErrorMode”的值为”1”时,该部件在执行”到原位动作”或”到工作位动作”前,如果不满足安全互锁条件,那么则会触发”到原位动作安全互锁不满足”报警或”到工作位动作安全互锁不满足”报警。

3、当”#ErrorMode”的值为”2”时,该部件在执行”到原位动作”或”到工作位动作”前,如果不满足安全互锁条件,那么则会触发”到原位动作安全互锁不满足”报警或”到工作位动作安全互锁不满足”报警。

如果部件”到原位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到原位动作超时”报警;如果部件”到工作位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到工作位动作超时”报警。

4、当”#ErrorMode”的值为”3”时,该部件在执行”到原位动作”或”到工作位动作”前,如果不满足安全互锁条件,那么则会触发”到原位动作安全互锁不满足”报警或”到工作位动作安全互锁不满足”报警。

如果部件”到原位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到原位动作超时”报警;如果部件”到工作位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到工作位动作超时”报警。

如果部件的”原位到位信号”和”工作位到位信号”同时出现,那么则会触发”部件原位_工作位双ON报警”。

5、当”#ErrorMode”的值为”4”时,该部件在执行”到原位动作”或”到工作位动作”前,如果不满足安全互锁条件,那么则会触发”到原位动作安全互锁不满足”报警或”到工作位动作安全互锁不满足”报警。

如果部件”到原位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到原位动作超时”报警;如果部件”到工作位动作_已执行时间”的值,超过设定”ErrorTime”的值,那么则会触发”到工作位动作超时”报警。

如果部件的”原位到位信号”和”工作位到位信号”同时出现,那么则会触发”部件原位_工作位双ON报警”。

如果部件有”在原位状态”,同时”原位到位信号”丢失,则会触发”部件原位传感器丢失报警”;如果部件有”在工作位状态”,同时”工作位到位信号”丢失,则会触发”部件工作位传感器丢失报警”。

⑥复位部件动作的触发条件

这段程序的目的是,当没有人为触发”部件动作条件”,这条指令可以将目前已触发的”动作条件”复位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦明月13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值