zoukankan      html  css  js  c++  java
  • volcanol的工控博客

      在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置。

    利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询。那么有没有一种简单的方法来

    实现操作员纪录呢? 

      我们知道在Windows系统中可以通过批处理来实现很多功能,而且操作也比较简单,学习起来也

    没有多大的难度。那么我们是否可以Windows的批处理功能来实现日志功能呢?

      

    一、WinCC执行外部程序。

      在WinCC中通过  

    ProgramExecute("notepad.exe");

     函数可以执行外部程序。  其中函数的参数是外部程序的路径和可执行文件名。

    二、cmd解释器的路径和直接启动cmd解释器传递参数

    1、查看路径

           我们可以通过命令行查看 cmd 解释器的路径。 默认cmd解释程序的路径为:%windir%system32cmd.exe

      图 利用命令行查看cmd解释的路径和可执行文件名

    2、给cmd解释器传递参数

      在运行对话框中输入命令:

    cmd /c start notepad.exe

       这个命令直接就可以启动记事本程序。

     

      图 利用cmd的方式启动记事本程序。

      这个命令需要解释一下:

                    cmd 是命令解释器可执行程序,后面的   /c start notepad.exe 是传递给cmd的参数, /c 表示后面的

    字符串是一个命令行,是一条命令;  start 表示是要启动一个程序,  notepad.exe 是要启动的程序。

    三、利用cmd解释器直接生成log文件

      在运行对话框输入:

    cmd /c  echo "我是log测试行">>C:UsersvolcanolDesktoplog.txt

      如下图所示:

      点击确定执行。在桌面生成一个文件 log.txt, 并且我们的内容也输入到了文件中,如下图所示:

      图 利用cmd解释器生成的log.txt 文件

    三、WinCC脚本执行

      结合上面说的cmd解释器的执行和在WinCC中执行外部程序,我们就可以做成一个简易的操作记录

    日志了。

    ProgramExecute("cmd.exe /c echo ---------------------->> E:\我是cmd命令行log.txt");
    ProgramExecute("cmd.exe /c echo %date%>>E:\我是cmd命令行log.txt");
    ProgramExecute("cmd.exe /c echo %time% >>E:\我是cmd命令行log.txt");    //Return-Type: unsigned long int 
    ProgramExecute("cmd.exe /c echo 我按下了按钮 >>E:\我是cmd命令行log.txt");
    ProgramExecute("cmd.exe /c echo. >>E:\我是cmd命令行log.txt");
    ProgramExecute("cmd.exe /c echo --------------------->> E:\我是cmd命令行log.txt");

      我通过上面的代码,就在E盘符下面生成了一个日志文件。如下图所示:

      图 WinCC中利用cmd命令生成日志文件

    四、结语

      上面的命令执行的时候有很多的命令行窗口,其实我们可以将这些写成一个命令行脚本,同时还可以在

    WinCC中设置一个项目函数,传递参数的方式执行,这样就不会有很多命令行窗口一闪而过,项目函数执行

    的方式待续。

    --------------------------------------------------------------分割线---------------------------------------------------------------

    1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

    2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

    3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

    4、或者在页面右下角点推荐哟!!!

    --------------------------------------------------------------分割线--------------------------------------------------------------

  • 相关阅读:
    操作系统
    MarkDown语法实操
    mac 添加环境变量
    在django中建立mysql数据表时发生的低级错误
    models.Book.object.get()与models.Book.object.filter()区别
    django中数据库操作时distinct的用法
    ‘,’逗号并不是字符串的拼接方式
    django单表操作中update_or_create不能更新多于一个数据的信息
    在python中terminal中建立mysql数据库,无法再models.py 文件中建立数据库信息
    booleanfield()和booleanfield(default=True)在数据库的表中无法插入
  • 原文地址:https://www.cnblogs.com/volcanol/p/9973081.html
Copyright © 2011-2022 走看看