西门子S7300-winCC组态软件快速编程及标准化编程方案及实例(版权所有:创想人生,未经允许不得转载)
1、 安装项目要求在硬件组态里,组态硬件
2、 使用公共功能块FB100、FB101,编写手动程序和模拟量程序。
3、 编程相应的自动程序,FB100,及FB101预留自动程序接口。
4、 FB100功能介绍,此功能块适用电机、水泵、阀门等开关量设备的控制。
5、FB101功能介绍,此功能块适用模拟量数据的读取、报警判断的控制。
6、在WinCC 中建立两个结构体变量
6.1 结构体ACT
{
BIT SAuto
BIT Sstart
BIT Sstop
BIT SFBI
BIT SalaZero
BIT SonoffZero
BIT RunZero
BIT SLOCK
BIT autoStart
BIT SOUTQ
BIT ALA
BIT Sure
BIT in1
BIT in2
BIT in3
BIT in4
SHORT alasetTime
LONG Salatimes
LONG Sonofftimes
LONG SRuntimes
TEXT16 Taglabel
}
说明:设备标签参数为内部变量,其他全部为外部变量,在定义实例化变量后,内部变量必须赋初始值,例如:M1电机,在”起始值”及”运行系统保持”选择框中选中。
6.2 结构体 AIInput
{
SHORT modify
SHORT TD
FLOAT Zero
FLOAT Size
FLOAT RealOut
FLOAT UpSet
FLOAT DownSet
SHORT alaUpSetTime
SHORT alaDownSetTime
LONG Runtimes
BIT alaUp
BIT alaDown
BIT alaSure
BIT alaTimeZero
BIT RunTimeZero
TEXT16 Signal
TEXT16 Taglabel
TEXT16 TagUnit
SHORT TagPoint
}
说明:传感器信号模式、标签、数据单位、小数点个数为内部变量,其他为外部变量,在定义实例化变量后,内部变量必须赋初始值。例如定义变量AI1。
7、WinCC 使用结构体变量
7.1 电机实例
if (GetTagWord(“UserPower_flag”)>0) // 权限控制
{
SetVisible(“Ftest1.pdl”,”PIC”,!GetVisible(“Ftest1.pdl”,”pic”));
SetPictureName(“Ftest1.pdl”,”PIC”,”act.pdl”);
SetTagChar(“UserTemp”,GetTagChar(“p2.Taglabel”));// 窗口标题
SetTagChar(“Lables”,”p2.Taglabel”);//设备名称
SetTagChar(“Start_Button”,”p2.Sstart”);// 启动
SetTagChar(“Stop_Button”,”p2.Sstop”);//停止
SetTagChar(“FB”,”p2.SFBI”);//反馈信号
SetTagChar(“OUT”,”p2.SOUTQ”); //输出信号
SetTagChar(“ALAZero”,”p2.SalaZero”);//报警次数清零);
SetTagChar(“ONOFFZero”,”p2.SonoffZero”); //开关次数清零
SetTagChar(“RunTimeZero”,”p2.SRunZero”);//运行时长清零
SetTagChar(“lock_respond”,”p2.SLOCK”);//闭锁解锁
SetTagChar(“ALAtime”,”p2.Salatimes”); //报警次数
SetTagChar(“ONOFFTime”,”p2.Sonofftimes”); //开关次数
SetTagChar(“RunTime”,”p2.SRuntimes”);//运行时长
SetTagChar(“AlaLable”,”p2.SALA”); //报警
SetTagChar(“AutoLable”,”p2.SAuto”);//手动自动
SetTagChar(“ALAtimeSet”,”p2.alasetTime”); //故障延时设定
SetTagChar(“LabelSure”,”p2.Sure”); //故障确认
// 初始化变量值
SetTagChar(“inputStr”,GetTagChar(GetTagChar(“Lables”)));////设备名称
SetTagWord(“inputalatime”,GetTagWord(GetTagChar(“ALAtimeSet”)));////设备名称
}
7.2 模拟量实例
if (GetTagWord(“UserPower_flag”)>0)
{
SetVisible(“Ftest1.pdl”,”PIC”,!GetVisible(“Ftest1.pdl”,”pic”));
SetPictureName(“Ftest1.pdl”,”PIC”,”act.pdl”);
SetTagChar(“UserTemp”,GetTagChar(“AI1.Taglabel”));// 窗口标题
SetTagChar(“AIlabel”,”AI1.Taglabel”);//设备名称
SetTagChar(“AIUnit”,”AI1.TagUnit”);// 单位
SetTagChar(“AIpoint”,”AI1.TagPoint”);//小数点
SetTagChar(“AISignal”,”AI1.Signal”);//信号模式
SetTagChar(“AITD”,”AI1.TD”); //通道值
SetTagChar(“AIModify”,”AI1.modify”);//修正值
SetTagChar(“AIZero”,”AI1.Zero”); //模拟量零点
SetTagChar(“AISize”,”AI1.Size”);//模拟量量程
SetTagChar(“AIReal”,”AI1.RealOut”);//模拟量实际输出值
SetTagChar(“AIUpSet”,”AI1.UpSet”); //上限设定
SetTagChar(“AIDownSet”,”AI1.DownSet”); //下限设置
SetTagChar(“AIalaUpSetTime”,”AI1.alaUpSetTime”);//上限报警延时设定
SetTagChar(“AIalaDownSetTime”,”AI1.alaDownSetTime”); //下限报警延时设定
SetTagChar(“AIUpALA”,”AI1.alaUp”); //上限报警延
SetTagChar(“AIDownALA”,”AI1.alaDown”); //下限报警
SetTagChar(“AISure”,”AI1.alaSure”);//报警确认
SetTagChar(“AIalaTimes”,”AI1.Alatimes”); //报警次数
SetTagChar(“AIRunTimes”,”AI1.Runtimes”); //运行时长
SetTagChar(“AIalaTimeZero”,”AI1.alaTimesZero”); //报警次数清零
SetTagChar(“AIRunTimeZero”,”AI1.RunTimesZero”); //运行时长清零
// 初始化外部变量值
SetTagWord(“AIInputModify”,GetTagWord(GetTagChar(“AIModify”)));
SetTagFloat(“AIInputZero”,GetTagFloat(GetTagChar(“AIZero”)));
SetTagFloat(“AIInputSize”,GetTagFloat(GetTagChar(“AISize”)));
SetTagFloat(“AIInputUP”,GetTagFloat(GetTagChar(“AIUpSet”)));
SetTagFloat(“AIInputDown”,GetTagFloat(GetTagChar(“AIDownSet”)));
SetTagWord(“AIInputUpTime”,GetTagWord(GetTagChar(“AIalaUpSetTime”)));
SetTagWord(“AIInputDownTime”,GetTagWord(GetTagChar(“AIalaDownSetTime”)));
// 初始化内部变量值
SetTagChar(“AIInputLable”,GetTagChar(GetTagChar(“AIlabel”)));////设备名称
SetTagChar(“AIInpuUnit”,GetTagChar(GetTagChar(“AIUnit”)));// 单位
SetTagChar(“AIInputPoint”,GetTagChar(GetTagChar(“AIpoint”)));//小数点
SetTagChar(“AIInputSignal”,GetTagChar(GetTagChar(“AISignal”)));//信号模式
}
8、Step7参考实例程序Moter WinCC 参考实例程序ZLJK
手动自动
手动启动
手动停止
反馈信号
报警次数清零
开关次数清零
运行时长清零
自动启动
输出
报警
报警确认
备用1
备用2
备用3
备用4
报警延时设定
报警次数
开关次数
运行时长
模拟量输入
修正值
通道值显示
传感器零点
传感器量程
传感器实际值
上限报警值设定
下限报警值设定
上限报警延时设定
下限报警延时设定
报警次数
运行时长
上限报警
下限报警
报警确认
报警次数清零
运行时长清零
手动自动
手动启动
手动停止
反馈信号
报警次数清零
开关次数清零
运行时长清零
自动启动
输出
报警
报警确认
备用1
备用2
备用3
备用4
报警延时设定
报警次数
开关次数
运行时长
设备标签
模拟量通道值
修正值
通道值显示
传感器零点
传感器量程
传感器实际值
上限报警值设定
下限报警值设定
上限报警延时设定
下限报警延时设定
报警次数
运行时长
上限报警
下限报警
报警确认
报警次数清零
运行时长清零
传感器信号模式
传感器标签
传感器数据单位
传感器数据小数点个数