您现在所在的是:

西门子SIEMENS

回帖:7个,阅读:3060 [上一页] [1] [下一页]
* 帖子主题:

winCC C动作的疑问

1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/8/16 19:23:28
#0楼
附件 11111.jpg
意图:比较简单,按下按钮启动C动作,将三个I/O域的输入值进行大小比较并输出最大值。
在全局脚本的C脚本里面建立一个项目函数------就是“比较函数”,然后在C动作里面调用。可以用,正确。
我的问题是:能不能在全局脚本里不建立也不调用项目函数,但是在C动作里面直接编辑并用这个“比较函数”,语句如下,但是会提示出错如图。

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
double Max (double i,double j,double k);
double i,j,k,max_temp;
i=GetTagFloat("V1");
j=GetTagFloat("V2");
k=GetTagFloat("V3");
max_temp=Max(i,j,k);
SetTagFloat("Maxvalue",max_temp);

}
double Max (double i,double j,double k)
{
double Maxvalue;
if  (i>=j&&i>=k)

Maxvalue=i;
if  (j>=i&&j>=k)

Maxvalue=j;
if  (k>=j&&k>=i)

Maxvalue=k;
return Maxvalue;
}
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/8/17 8:19:27
#1楼
求指教,谢谢
7722
w71412659
文章数:1455
年度积分:50
历史总积分:7722
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2014/8/17 12:35:30
#2楼
很奇怪,#include "apdefap.h"是C脚本必带的头文件,一般来说不会在这个地方报错,基本上说明不是你后边的语句问题。看你错误代码提示的是:这个模组函数太多了,你试试用注释屏蔽掉一部分语句再试试。我开WINCC还要先开虚拟机,太麻烦,你自己按照这个思路试试吧。记得看错误提示语句。
但是看你的程序,我有个问题,你要调用外部函数,不引用头文件真的可以吗?
兽人永不为奴,除非包吃包住!
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/8/17 15:53:31
#3楼
回复 #2楼 w71412659
不知道你说的调用外部函数是指全局脚本里面的项目函数,还是主函数外面的函数。嗯,无论哪个,头文件我都没动过,都是直接在下面写的。难道C动作必须调用全局脚本里面的函数?不能再C动作函数的主函数下面直接写?
一天了,真的很想知道为什么
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/8/17 16:05:46
#4楼
附件 完整.jpg
整个就这些。A1,A2,A3,是建立的内部变量用于I/O域,是输入三个进行比较大小的数。。A4,是用于输出比较的结果
7722
w71412659
文章数:1455
年度积分:50
历史总积分:7722
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2014/8/17 20:29:37
#5楼
以下是引用neverland362014/8/17 15:53:31的发言:
不知道你说的调用外部函数是指全局脚本里面的项目函数,还是主函数外面的函数。嗯,无论哪个,头文件我都没动过,都是直接在下面写的。难道C动作必须调用全局脚本里面的函数?不能再C动作函数的主函数下面直接写?
一天了,真的很想知道为什么
C语言扔了好多年了,都用的很少,不过我记得,在一个项目中我做一个子程序,然后在主程序中调用,我需要在头文件中加入对这个子程序的调用,我看你的函数里面有对另一个子程序的调用,所以我做了猜测。你可以这样试试,不调用外部函数,把这个外部函数定义到你现在的主程序里面,看能不能编译通过
兽人永不为奴,除非包吃包住!
2334
东昌机电
文章数:643
年度积分:50
历史总积分:2334
注册时间:2013/9/13
发站内信
工控人谈电商
发表于:2014/8/18 8:46:26
#6楼
实际上,Wincc中包含的C脚本与C还是有较大的区别的,例如:不能在函数中创建函数,不能通过变量的地址传递来传递参数,等等。
附件 snap1.jpg

Regards
+10
SANKA电机
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/8/18 19:00:16
#7楼
回复 #6楼 东昌机电
非常感谢!!不能嵌套

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

46.8003