为什么在WINCC C脚本内定义的变量,不与WINCC变量链接,内部变量就不动作?

有C脚本按照下面做,脚本变量lss1可以正常动作,如下
#include "apdefap.h"

int gscAction( void )
{
#pragma option(mbcs)
#pragma code ()
char FileName[20] = " ";
double row=GetTagDouble("行数"); //Return-Type: double 
double lsj=GetTagWord("ls");
double lsjj1=GetTagWord("lsjj");
double aa=lsj-lsjj1;
__object* pExcel = NULL; 
row=row+1;
lsjj1=lsj;
pExcel = __object_create("Excel.Application"); 
pExcel->Workbooks ->Open ("e:\\JILU.xlsx");
pExcel->Worksheets("sheet1")->Cells(row,2)->Value=aa; 
pExcel->ActiveWorkbook->Save;
pExcel->Workbooks->Close();
pExcel->Quit();
__object_delete(pExcel);
SetTagDouble("行数",row); //Return-Type: BOOL 
SetTagDouble("lsjj",lsjj1);
return 0;

一旦我把double lsjj1=GetTagWord("lsjj");不与外部变量lsjj链接,改成double lsjj1;并且删除SetTagDouble("lsjj",lsjj1);这一行,内部变量lsjj1在脚本里始终不动作,就是不能执行lsjj1=lsj;,一直都是0.请高手解答,万分感谢!!!

问题补充:
我想执行的脚本是内容是 aa=lsj-lsjj1 然后使lsjj1=lsj,再把aa写到EXCEL里,lsjj1只是脚本中的中间变量,lsj连接着外部的WINCC变量LS,这个变量始终变化,我就想算WINCC外部变量ls在我规定的触发器时间内有了多少变化(增加了多少)。当我把脚本改成如下的时候,我发现lsjj1不动作,,请高人指点,谢谢
#include "apdefap.h"
int gscAction( void )
{
#pragma option(mbcs)
#pragma code ()
char FileName[20] = " ";
double row=GetTagDouble("行数"); //Return-Type: double 
double lsj=GetTagWord("ls");
double lsjj1;
double aa=lsj-lsjj1;
__object* pExcel = NULL; 
row=row+1;
lsjj1=lsj;
pExcel = __object_create("Excel.Application"); 
pExcel->Workbooks ->Open ("e:\\JILU.xlsx");
pExcel->Worksheets("sheet1")->Cells(row,2)->Value=aa; 
pExcel->ActiveWorkbook->Save;
pExcel->Workbooks->Close();
pExcel->Quit();
__object_delete(pExcel);
SetTagDouble("行数",row); //Return-Type: BOOL 
return 0;

我已经做过实验了,就是不行,aa始终都是 lsj的值,没有执行在下一次执行脚本时候应该执行的lsjj1=lsj;,就好像aa=lsj-0;一样的效果,请高手帮助解答,谢谢

最佳答案

你的脚本里没有输出lsjj1,你怎么知道“不能执行lsjj1=lsj,一直都是0”。
你是不是把脚本的变量和WinCC的内部变量混淆了。

————————————————————————————————————————
明白你的意思了,你是想lsjj1保持上一次的值,你应该声明为静态变量,即数据类型double 前面加上静态变量声明标识static。

提问者对于答案的评价:
真乃高人也!!!  万分感谢 ,我的QQ是46684613, 期待高人youhm您的帮助!  谢谢了

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

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

相关推荐

  • wincc兼容问题1,

    请问,PCS7可以运行WINCC的项目吗,我安装了PCS7,不想单独安WINCC了,可以单独运行WINCC项目吗 最佳答案 PCS7中的WinCC与WinCC大致一样,但还是有细微…

    SIMATIC WinCC 2017年6月1日
  • WinCC变量纪录打印

    WinCC中生成的变量历史记录,由于一行中要打印的列较多,A4纸竖向一行打印不下,想设置纸张为横向,请问大侠,有何高招? 最佳答案 参考资料:《如何将一个打印作业(例如在线趋势控件…

    SIMATIC WinCC 2019年6月11日
  • WINCC带密码的翻页键

    请问怎样设置WINCC带密码的翻页键? 问题补充:我在WINCC6.2版里面找不到进登陆热键的途径了。原来的笔记是WINCC6.0版的。现在走到新建管理员这一步,下面就找不到路了。…

    SIMATIC WinCC 2019年6月11日
  • WINCC62中如何记录模拟值报警

    我用300读取仪表重量,在WINCC中对该重量做存盘、实时历史查询!同时监视该模拟值,越限报警!用限制值监控可以吗?请详细说下步骤和作法!!非常感谢 问题补充:能实现,上下限报警同…

    SIMATIC WinCC 2019年6月11日
  • k-tp178触摸屏按键反应慢?

    我组态的 K-TP178触摸屏上的按键反应比较慢,大概要 1 S钟,是怎么回事啊? 最佳答案 建议进行下OS更新 提问者对于答案的评价:谢谢

    SIMATIC WinCC 2019年6月11日
  • wincc图库添加

    什么地方有wincc的图库可以下载? 最佳答案 若觉得WINCC自带的图库内容不够,你可以自己绘制然后在画面中使用粘帖等方式使用,若需要可以自己设置其动作对应变化,都是可以的,不一…

    SIMATIC WinCC 2019年6月11日
  • 我有三台WINCC工作站,它们的历史趋势为什么不一样

    三台工作站通过一根MPI连接线连接三台PLC(CPU:315-2DP),WINCC组态一样,但是记录下来的历史趋势有点差别。我们现场走线有点不规范,有信号干扰,但有些机子可以记录到…

    SIMATIC WinCC 2019年6月11日
  • MP277F 网络密码设置错误

    MP277F 点击这个快捷方式进入; WLAN V2 CONFIG 。     …

    2021年7月5日
  • 安装winccflexble smart 遇到问题

    如图,程序安装到第二步,SQL就不断的要求的要求重启电脑,重启后也安装不得,删除注册表中的pendingoperations也没用!怎么破!! 图片说明:   …

    2021年7月5日
  • wincc实现按一下按钮,相应的变量加一的c脚本

    wincc实现按一下按钮,相应的变量加一的c脚本 最佳答案 int tag;tag=GetTagByte("tag1");tag=tag+1;SetT…

    SIMATIC WinCC 2017年11月12日