程序如下:
Net14:
A(
O(
L #OetikerELK02Data.Length
L 111
==I
)
O(
L #OetikerELK02Data.Length
L 114
==I
)
)
A(
A(
L #OetikerELK02Data.RS232_Data[65]
L B#16#30
<>I
)
A(
L #OetikerELK02Data.RS232_Data[65]
L B#16#0
<>I
)
O
A(
L #OetikerELK02Data.RS232_Data[67]
L B#16#30
<>I
)
A(
L #OetikerELK02Data.RS232_Data[67]
L B#16#0
<>I
)
)
FP #DataUpdateImpuls
= #DataUpdate
Net15:
A #DataUpdate
JCN _006
CALL "4Zeichen _Real"
Ze1:=#OetikerELK02Data.RS232_Data[64]
Ze2:=#OetikerELK02Data.RS232_Data[65]
Ze3:=#OetikerELK02Data.RS232_Data[66]
Ze4:=#OetikerELK02Data.RS232_Data[67]
Z_R:=#OetikerELK02Data.ProcessData.HC_gap_target_value
Net16:与上雷同
Net17:与上雷同
Net18:与上雷同
Net19:与上雷同
Net20:
A #DataUpdate
JCN _013
CALL "4Zeichen _Real"
Ze1:=#OetikerELK02Data.RS232_Data[100]
Ze2:=#OetikerELK02Data.RS232_Data[101]
Ze3:=#OetikerELK02Data.RS232_Data[102]
Ze4:=#OetikerELK02Data.RS232_Data[103]
Z_R:=#OetikerELK02Data.ProcessData.HC_force_current_value
_021: NOP 0
A #DataUpdate
S #ReadDataOK
//**************************************************//
疑问:
#DataUpdate为一个扫描周期的脉冲,net15、net16、net17、net18、net21的程序能够正确执行,但是net19、net20指令却没有执行。这是什么情况?单扫描周期的脉冲只能连续执行4个call命令吗?
最佳答案
没有这个说说,我也对你这个问题感兴趣,做了一个实验新建了6个FC,然后用沿触发调用。
每一个FC中写了一段简单的控制程序,在OB1中用沿触发调用。
FC1:
AN M0.1
= Q0.0
FC2:
AN M0.1
= Q0.1
以此类推到FC6
仿真后的效果,见附件
图片说明:
提问者对于答案的评价:
谢谢你的热心测试,但是情况确认如我所述
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc214585.html