当前位置:
工控论坛
> >
产品
>
PLC
>
西门子(Siemens)PLC
我要发帖
一个西门子程序的问题
点击:
967
| 回复:
8
zyhml
关注
私信
精华:0帖
求助:1帖
帖子:31帖 | 113回
年度积分:0
历史总积分:234
注册:2001年7月31日
发表于:2005-08-23 10:49:00
楼主
我在fc块中使用fp功能时中间线圈用的temp变量,结果程序不正确执行,而我把这个temp变量改成m变量程序执行就正确拉。在我另外做的单独的调用fc则没问题。
分享到:
收藏
邀请回答
回复楼主
举报
zyhml
关注
私信
精华:0帖
求助:1帖
帖子:31帖 | 113回
年度积分:0
历史总积分:234
注册:2001年7月31日
发表于:2005-08-23 10:55:00
1楼
A "给料机启动" = L 1.0 A L 1.0 FP M 10.5 JNB _001 L W#16#47F T "mm440_1".kzz _001: NOP 0 A L 1.0 FN M 10.6 JNB _002 L W#16#47E T "mm440_1".kzz _002: NOP 0 这是程序,这个是可以执行的,如果把m10.5和m10.6改成fc中定义的temp变量,则程序不起作用,在上升、下降时不执行赋值操作
回复
引用
举报
mafz26
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 13回
年度积分:0
历史总积分:75
注册:2003年11月03日
发表于:2005-08-23 17:43:00
2楼
这里有一个全局和局部变量问题,temp局部变量,程序执行一个循环后temp局部变量的数据不保留(丢掉),而m10.5和m10.6为全局变量数据被保留。
回复
引用
举报
zyhml
关注
私信
精华:0帖
求助:1帖
帖子:31帖 | 113回
年度积分:0
历史总积分:234
注册:2001年7月31日
发表于:2005-08-23 22:20:00
3楼
可是同样的程序在另一个程序中运行正确,也是fc中也是temp变量,所以才觉得奇怪:-)
回复
引用
举报
bluingplc
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 9回
年度积分:0
历史总积分:116
注册:2001年8月11日
发表于:2005-08-24 15:53:00
4楼
这是应为FC块中的temp变量是在被调用时分配地址的,在调用结束时释放地址,所以其数据不被保存,所以fp,fn指令不能按你的要求起作用.
回复
引用
举报
zyhml
关注
私信
精华:0帖
求助:1帖
帖子:31帖 | 113回
年度积分:0
历史总积分:234
注册:2001年7月31日
发表于:2005-08-24 16:04:00
5楼
搞不明白,看来以后这种指令还是用全局变量吧
回复
引用
举报
二号
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 133回
年度积分:0
历史总积分:1824
注册:2003年8月15日
发表于:2005-08-24 17:50:00
6楼
我觉得,如果其他FC没有用temp变量的话,就不会改变
回复
引用
举报
小楼
关注
私信
精华:2帖
求助:0帖
帖子:5帖 | 298回
年度积分:0
历史总积分:418
注册:2002年6月13日
发表于:2005-08-24 18:39:00
7楼
变量的生存周期问题
回复
引用
举报
frack
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 13回
年度积分:0
历史总积分:46
注册:2005年1月03日
发表于:2005-08-24 20:00:00
8楼
一个是局部变量,一个是全局变量。局部变量的信息在首次执行完后回自动请零,而全局变量不会。特别提醒大家:如果你的程序已经写入PLC中而且短时间不用,一定要记得在每2个月左右通一次电源否则程序会在内部电池耗近的情况下丢失。
回复
引用
举报
热门招聘
相关主题
请教如何实现USB接口转RS232...
[30752]
求助:横河PLC编程软件Widefi...
[7230]
一位自控工程师的成长过程!
[19057]
老外写的PID仿真软件
[7876]
profibus 和MPI 总线有何区别...
[7448]
工控老鬼-《西门子S7-1500之我...
[9332]
西门子S200PLC编程实例精解(...
[15163]
plc接受接近开关信号,用二线...
[14765]
一位老工程师收藏的3018套PL...
[10712]
有关工控的网址汇总
[25094]
官方公众号
智造工程师
客服
小程序
公众号