Wincc保存变量到文件脚本疑问

把数据写到外部文件中,然后再从外部文件中读取,(读写外部文件)参考资料:
http://support.automation.siemens.com/CN/view/zh/850338
资料中的读写都是以32为浮点型变量来实验,但是我真正想要的是保存和读取一些字符串。
下面这段都函数该怎样改:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
   #define MaxLineLength 80

   FILE *fpFile;
   char *strTag, *strValue, *pTmp;
   char buffer[MaxLineLength];
   double  dVal;
   fpFile = fopen(GetTagChar("FileName"), "r" ); //open file to read
   printf ("C-Script: read file: %s\r\n", GetTagChar("FileName"));
   if (fpFile !=NULL)
   {
       while (fgets (buffer, MaxLineLength , fpFile))
       {
           strTag = buffer;
           // Split String and cut  carriage return
           pTmp = strchr(buffer, (int)';');
           *pTmp = '\0';
           strValue = ++pTmp;
           strValue[strlen(strValue)-1] = '\0';

           // Search for ',' and replace with '.'
           pTmp  = strchr(strValue, (int)',');
           if (pTmp != NULL){
               *pTmp = '.';
           }
          
           // Convert Value-String to double and write to WinCC
           sscanf (strValue , "%lf", &dVal);            
           SetTagDouble(strTag,dVal);
           printf("%s  Value: %lf\r\n", strTag, dVal);
       }
       fclose(fpFile); //close file
   } else {
       printf ("Error: File not found!\n");
   }
}

最佳答案

double  dVal;  改为:char dval

  sscanf (strValue , "%lf", &dVal); 改为:                                              

   sscanf (strValue , "%20s", &dVal);    
 
 SetTagDouble(strTag,dVal);改为:SetTagchar(strTag,dVal);
输出也改一下.不知道是否可行.

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc267052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午4:59
下一篇 2019年6月11日 上午4:59

相关推荐

  • 正在做WinCC客户机/服务器,但是客户机连不上服务器项目

    同时连接一个路由器,互相PING都可以通。在SIMATIC SHELL中可以互相看到,但是通过互连时候一直提示“该计算机不在服务器项目的客户机列表中。但是我已经在服务器项…

    SIMATIC WinCC 2017年12月9日
  • Audit Editor

    Audit Editor 打开以后 里面的 Audit Trail Server-Name 下没有创建新的数据…

    SIMATIC WinCC 2020年11月1日
  • WINCC登入及相关问题

    当我登陆WINCC并输入了用户名及密码后点确认了,怎么能把启动画面登陆后自动进入我的主画面呢,比如我登陆点确定后,然后我鼠标按下松开后将画面切换到我指定的画面里去 问题补…

    SIMATIC WinCC 2019年6月11日
  • wincc 压缩数据库

    1.在wincc 7.0 创建一个名为数据查询的图形界面。在界面上利用静态文本控件画两个静态文本框。一个为速度,一个空白,留作写入数据显示用。2.该静态文本框要…

    SIMATIC WinCC 2017年8月3日
  • wincc脚本中的触发器

    麻烦大家帮忙解释一下wincc脚本中触发器的用法。详细一点,谢谢! 最佳答案 定义和使用触发器 触发器用于在运行时执行动作。为此,将触发器与动作相链接以构成对动作进行调用…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4取消激活时会卡住

    如下图所示,wincc7.4在取消激活时会卡住,等了很久进度条都走不完,想知道这是什么原因以及如何解决?通常遇到这个问题就会运行reset_wincc,但是希望不要出现这个问题,谢…

    2020年11月1日
  • 对象颜色对应的数值在哪里查

    用C脚本改变一个对象颜色的时候,颜色是作为一个数值返回的。各种颜色对应不同的数值,这个数值在哪里可以查到呢? 最佳答案 给你一个查询颜色的网站,注意使用IE浏览器或IE兼容模式的浏…

    SIMATIC WinCC 2019年6月10日
  • wincc如何打开别的项目的备份数据

    我有一个wincc项目,按照修改日期不同做了两个版本,其中两个版本各运行了一段时间,现在需要两个版本运行的数据曲线,有没有什么办法把两个版本的数据曲线放在一起? 最佳答案 WinC…

    SIMATIC WinCC 2021年7月5日
  • WinCC的故障

    每次用step7打开一个程序时总是弹出一个窗口,如图,而且WinCC和PLC(仿真连不上),不知什么原因 最佳答案 wincc仿真跟正常使用一样 只是选择逻辑设备名称的时…

    SIMATIC WinCC 2021年7月5日
  • WINCC的问题

    各位大侠,请问一下,WINCC能不能与除西门子外的PLC连接?怎么连,不用以太网的话如何通讯?谢谢! 问题补充:各位大侠,请问一下,WINCC能不能与除西门子外的PLC连接?怎么连…

    SIMATIC WinCC 2019年6月11日