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区”来使用,下拉内容有:
3、FB块程序的构建
①部件到位信号
正常情况下,每个部件都有一个”原位到位信号_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报警”。
如果部件有”在原位状态”,同时”原位到位信号”丢失,则会触发”部件原位传感器丢失报警”;如果部件有”在工作位状态”,同时”工作位到位信号”丢失,则会触发”部件工作位传感器丢失报警”。
⑥复位部件动作的触发条件
这段程序的目的是,当没有人为触发”部件动作条件”,这条指令可以将目前已触发的”动作条件”复位。