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里的opc服务器不显示PC access的plc

    已在PC access里搭建完变量,并已保存,wincc也重启了,但在wincc的opc里却不显示新添加的plc。 图片说明:     &n…

    2021年7月5日
  • wincc安装后

    wincc之前装的13sp1   可以使用运行程序卸载的  注册表已经清理过现在装14sp1系统win10 钻石用户推荐最佳答案 …

    SIMATIC WinCC 2021年7月5日
  • wincc flexible 2008 sp4与什么日常软件不兼容

    wincc flexible 2008 sp4已经安装完了,授权也授完了,请问它在平时和360杀毒、360安全卫和Windows防火墙一起使用有问题吗…

    SIMATIC WinCC 2021年7月5日
  • VBS动作不触发

    winCC7.3 新建了一个VBS动作,触发器为一个内部变量,数据类型为无符号的16位值,标准周期为有变化时。现在在画面上,通过两个按钮,更改这个内部变量的值,通过IO域…

    SIMATIC WinCC 2021年7月5日
  • 请教用户归档

    请教高人,用户归档中的"控制变量"是干什么的 具体怎么用哟 比如:ID, 指令,域,值 问题补充:在归档属性里边看得到 最佳答案 …

    SIMATIC WinCC 2019年6月11日
  • 在pc access上测试客户机,不能找到

    在pc access上测试客户机,不能找到。我装的是pc acess sp3,用ppi,能上下载程序,可在 pc acess里测试…

    SIMATIC WinCC 2019年6月11日
  • XP系统能装 WinCC Flexible 2008 SP5吗

    想在XP系统上安装 WinCC Flexible 2008 SP5,点击安装后跳出一个界面,过几秒后界面消失,不继续安装,没有任何提示,也不…

    2021年7月5日
  • 画面窗口中的画面窗口的显示问题

    情况是这样的,画面A.PDL是个总图(因为要共用它的台头和台尾),现A中有个大的画面窗口a,点击台尾一个按钮,画面B.PDL装载入A的画面窗口a中;而B中也有一个画面窗口b,现显示…

    SIMATIC WinCC 2019年6月11日
  • 博图安装出现问题

    安装出现以下问题,不能继续安装,请问怎么解决。先决条件不满足检测到windows系统设置于该安装过程不兼容。请联系系统管理员更改windows中的DCOM设置。在安装过程中,Def…

    2021年7月5日
  • S7打不开程序块,报256:6

    打开块时报“产生一个内部OLE错误” 256:6.自己新建的块也打不开,创建空文档失败。怎么回事?建议重装系统和S7的请问勿打扰,如果这样我就不提问了,谢谢 最佳答案 …

    SIMATIC WinCC 2019年6月11日