为什么我这样编写提示有E1002语法错误 点击:2560 | 回复:7



like821080

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:11帖 | 60回
  • 年度积分:457
  • 历史总积分:1052
  • 注册:2008年3月14日
发表于:2010-08-03 16:04:06
楼主
为什么我这样编写提示有E1002语法错误
if man_on :=true and man_off :=false and stat1 :=1 then
stat2 := stat2+1;
stat1 :=false;
end_if;
if man_on :=false then
stat1 :=true;
end_if;

软件为UNITY POR 3。1



ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-08-03 16:18:58
1楼

没有用过施耐德的。但if条件中不应该使用“:”吧,试试修改为下面的语句

if man_on =true and man_off =false and stat1 =1 then

if man_on =false then


 

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-08-03 16:34:21
2楼

另外,还可以将条件简化:

if man_on  and not man_off and stat1  then

if not man_on then

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 2176回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2010-08-03 19:22:11
3楼
ye_w回答得正确。:=是赋值,=是比较。

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2010-08-05 12:29:29
4楼
ST 文本编程,别当成C编程了。。。。。,注意它们之间的区别!

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 2176回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2010-08-06 08:28:36
5楼
C这样是不报错的,它会先赋值,然后判断赋的值是否等于0。

PLC语言是不同的。

  • 精华:1帖
  • 求助:0帖
  • 帖子:9帖 | 40回
  • 年度积分:0
  • 历史总积分:376
  • 注册:2002年4月27日
发表于:2010-10-01 00:57:06
6楼

stat2 := stat2+1

--------------------------------------------------

是Bool类型吗?

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 2176回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2010-10-01 07:20:22
7楼
像 :=  这样的写法都是跟Pascal学的。 现在Borland不行了,Pascal / Delphi 也跟着完蛋。

热门招聘
相关主题

官方公众号

智造工程师