WinCC中定时器使用方法

2021-01-26 20:11:47更新 手机网站 网站地图 资讯 综合 水电工培训 湖南阳光装饰装修培训学校常年开设:水电安装培训、木工培训、室内装修培训、PLC培训、瓦工培训、家装木工培训课程。是专业的水电工培训学校,PLC编程培训学校,木工培训学校,泥工培训学校,室内装修培训学校。
水电工培训学校形象图片
水电安装培训学校
  • 最新报名学员名单(实时滚动)
    最新就业创业学员名单
    WinCC中定时器使用方法
    WinCC中定时器使用方法
    当前位置: > 电工技术更新时间:2014-04-03 15:16:36主题:WinCC中定时器使用方法 围观:

    1定时器功能介绍
    wincc中定时器的使用可以使wincc按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。wincc已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,wincc 提供的定时器不能满足我们需求,这时我们就可以通过 wincc提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用wincc其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。wincc 提供了c 脚本和vbs脚本,本文主要以全局 c 脚本编程为例介绍定时功能的实现。

    2脚本中定时器介绍
    既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:


    图1 脚本触发器分类

    如图1所示: 脚本触发器分为使用定时器和使用变量, 定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。 使用变量触发脚本,即在变量发生变化时,脚本就执行一次, 而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。

    3使用脚本实现更多定时器功能
    利用脚本自身的定时器, 可以通过在脚本中编程的方式实现更多其它定时功能。

    3.1整点归档
    wincc提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档, 比如:整点归档。下面的设置结合wincc脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。

    软件环境:windows 7 professional service pack1 , wincc v7.0 sp3
    归档名称:processvaluearchive
    归档变量:newtag
    归档周期:1 分钟
    归档控制变量 startarchive
    c脚本触发周期:10秒
    脚本代码:
    #include "apdefap.h"

    int gscaction( void )
    {

    #pragma option(mbcs)
    #pragma code ("kernel32.dll");
    void getlocaltime (systemtime* lpst);
    #pragma code();
    systemtime time;
    int t1;
    getlocaltime(&time);
    t1=time.wminute;

    if(t1==00)
    {
    settagbit("startarchive",1);
    }
    if(t1==05)
    {
    settagbit("startarchive",0);
    }
    return 0;
    }

    归档设置如图2:


    图2 归档设置

    同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:

    rptjobprint("myprintjob");

    myprintjob为事先创建好的打印作业。

    脚本主要部分在于获取系统当前时间,下面的脚本实现了获取当前时间并分别获取年、

    月、日、时、分、秒、毫秒,星期几的功能。

    varname1到varname8为wincc内部变量。若在wincc画面上显示时,由于默认i/o 域

    的格式为999.99, 要把 varname1的显示格式改为9999。

    #include "apdefap.h"

    int gscaction( void )
    {

    #pragma option(mbcs)

    #pragma code ("kernel32.dll");

    void getlocaltime (systemtime* lpst);

    #pragma code();

    systemtime time;

    getlocaltime(&time);

    settagword("varname1",time.wyear);
    settagword("varname2",time.wmonth);
    settagword("varname3",time.wdayofweek);
    settagword("varname4",time.wday);
    settagword("varname5",time.whour);
    settagword("varname6",time.wminute);
    settagword("varname7",time.wsecond);
    settagword("varname8",time.wmilliseconds);

    return 0;
    }

    设置或读取系统时间的函数如下:

    setsystemtime
    setlocaltime
    getsystemtime
    getlocaltime

    系统中本地计算机时间和格林威治时间是有区别的。函数“setsystemtime /

    getsystemtime”用于设置或读取格林威治时间。

    函数“setlocaltime / getlocaltime”用于设置或读取本地计算机时间。

    两种时间会因地理的时区不同而改变。两个函数使用方法相同。

    3.2 wincc项目激活时避免脚本初次执行及延迟执行脚本

    全局脚本在项目激活时,是要执行一次的,在有些情况下,需要避免脚本执行,就采用在脚本中去判断。比如可以创建wincc内部布尔型变量 flag,脚本如下:

    #include "apdefap.h"

    int gscaction( void )
    {

    #pragma option(mbcs)

    if ( gettagbit("flag")==1)
    settagword("newtag",1);//根据自己的需求编写对应代码.
    else
    settagbit("flag",1); //return-type: bool

    return 0;
    }

    除了避免项目运行激活时触发脚本执行,我们还可以通过sleep() 延迟脚本功能执行,比如开机后五分钟开始执行脚本具体功能,代码如下:

    #include "apdefap.h"

    int gscaction( void )
    {

    #pragma option(mbcs)
    #pragma option(mbcs)
    #pragma code("kernel32.dll");
    void sleep(int milliseconds);
    #pragma code()

    sleep(300000); //延迟300秒即五分钟

    int temp;

    //根据自己的需求编写对应代码.
    temp=gettagword("newtag"); //return-type: word
    temp++;
    settagword("newtag",temp);

    return 0;
    }

    温馨提示:湖南阳光电子学校常年面向全国招生(不限年龄)。由湖南阳光电子学校实战一线首席技术专家授课,天天实操,全程实战,手把手教,包教包会。我们是正规技术学校,我们有自己的校园,我们是行业正规军!我们有自己的教学楼、学员公寓楼、篮球场(2个)、有校内花园、有专业实操车间。我们会为您提供海量的WinCC中定时器使用方法的信息,如果您想了解有关WinCC中定时器使用方法方面的更多资讯,请经常关注我校网站:www.hnygpx.cn,我们将给你最详细的与WinCC中定时器使用方法相关的解答。 如果您对湖南阳光电子学校发布的WinCC中定时器使用方法这条信息有什么好的建议,请告诉我们。您的宝贵建议对我们逐步完善WinCC中定时器使用方法的内容有重要的参考作用!
      推荐文章
      • 水电工是做什么的:水电工是水工、电工、管工的统筹总称,简称水电工。社会上的电工培训班,只是单一的电工培训,不含水工和管工。水电工就是在家装工地上安装一些电路和水路的技术工作。水电工…
      • “相信品牌的力量”是掷地有声且亘久不变的品牌标语。湖南阳光电子技术学校教育的品牌经住了时间和社会的考证,一直在电子维修技术培训行业的洪流中奔流不息。湖南阳光电子技术学校教育采用模块…
      • 湖南阳光电工焊工技术培训学校(湖南电工焊工培训领导品牌)是经湖南省劳动和社会保障厅批准成立的电工焊工专业技术培训学校,是焊工学校、焊工培训、电焊技校、电焊培训学校、电工培训、电工技…
      • 联系方式●网站:http://www.hnygpx.net
      • 学习时间:3个月教学目标:培养中级“电工+焊工”全能技术人员。半天理论,半天实践,深入浅出,通俗易懂,从零开始,手把手教,包教包会,使学生成为真正意义上的、全能的电工焊工技术人才。教…
      • 教学目标:培养中级电工技术人员。半天理论,半天实践,深入浅出,通俗易懂,从零开始,手把手教,包教包会,使学生成为真正意义上的、全能的电工技术人才。学习时间:2个月(采用我校十五年经典…


      安防监控技术学校
      安防监控技术学校
      安防监控技术学校
      返回顶部
      中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市