回复:问多次调用含跳转的子程序

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15629
  • 精华

    102
  • 被关注

    968

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2021-11-20 09:59:23

30楼

展开查看
以下是引用YUKJ在2021-11-20 08:56:49的发言 >28楼

23楼winter938的评论是对的。对不起。

重新说说本次试验的结果,部分结果没有在系统手册中找到佐证,可能片面:

主程序的跳转指令中的JMP*发生,JMP*和LBL*之间的所有程序段被跳转(包括本试验程序的2个子程序)。

主程序或者每个子程序可以有多个跳转指令,并且主程序每个跳转指令标号独立的不能相同。如果标号相同,虽然编译能通过(是不是软件的BUG?),但是下载不了。每个子程序的规则与主程序一样。

主程序和子程序中的标号可以相同,这个仅仅是本次试验的结果,是不是片面不得而知。但是话说回来,为什么要使用相同的标号呢,请尽量使用不相同的标号,256个标号是使用不完的。

子程序只执行本子程序的跳转指令。如果它使用独立的标号那当然毫无疑问,但是本次使用的不是独立的标号(都是1),试验结果也是只执行本子程序的跳转指令,但是毕竟的试验重新实在太简单,结论是否片面有疑问。


256个标号是使用不完的,不要使用重叠标号更加放心。



以前,21x年代,子程序要……的话只要,什么dll文件。打开某些子程序就是看见了它使用了跳转。(懂我不能表达的意思吗?)

如今虽然是smart时代,如果碰上了使用两个子程序它里面用上了相同的lable,你说怎么办?

假设这么说,我说假设啊,你是不使用modbus程序库,还是不使用运动控制程序库?因为两个子程序都使用了lbl 1。

我是这个意思。不是说我256个不够用。是重复了。明白了吗?

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9142条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。