我用plc梯形图写了个FC 在OB1中调用 在OB1视图选项中转换成STL后 为什么输入IN 参数都有一个L区地址与实参对应 而IN-OUT 和OUT 参数却没有呢 见图一 答:L是临时变量的意思。楼主需要明白,所有的梯形图都可以转化成语句表。不是所有的语句表都可以转化成梯形图。只有附和一定格式的语句表才可以转化成梯形图。比如你的这个句子。 如果只单纯的调用: CALL FC2 是不能转化成梯形图的。虽然运算结果相同。 分析它的语句表,就看到,它只是把输入参数,写转移到临时变量,然后再把临时变量的值赋予形参。结果没有变化 。但是相当啰嗦。这也就是为什么STL要比梯形图执行效率好的原因。 |
ET200SP具有组态控制(Configuation control)功能。组态控制允许使用 ET 200SP 分布式 I/O 系统的单一组态来运行各种实际组态。即可以组态一个通用的硬件配置下载至plc中,然后在程序中通过控制数据记录196的方式,使得下载至PLC中的单一硬件组态可以适用于多种不同的实际配置。 本文以一个例子来说明组态控制的实现过程。在这个例子中,ET200SP站点共组态了7个插槽,具体模块类型如图1所示。 图1.ET200SP的硬件组态 而实际上,真正所用到的模块如图2所示,其中第1、2插槽为DQ8 x 24VDC/0.5A HF模块,第3、4插槽为DI8 x 24VDC HF模块,第5插槽是空槽,没有安装电子模块,只安装了一个BU外壳,第6个插槽为服务器模块,第1和第3插槽启用了新的电势组。 图2.ET200SP实际站点配置 要实现组态控制,首先双击ET200SP,在属性对话框的参数标签下使能ET200SP组态控制功能,如图3所示: 图3.使能组态控制 然后将硬件组态编译下载至PLC中。 接下来在PLC中编程,对接口模块写数据记录196。数据记录196的内容说明如表格1和表格2所示: 字节含义值说明0数据记录长度4 +(插槽数 × 2)数据记录头1数据记录ID1962版本23版本04分配所组态的插槽1对应的实际插槽控制元素,在每个元素中说明IO 设备中的哪个实际插槽被分配到了已组态的插槽。5插槽 1 的其它功能6分配所组态的插槽27插槽 2 的其它功能: ::4 +((*大插槽编号 - 1)×2)分配服务模块的插槽实际服务模块插槽4 +((*大插槽编号 - 1)×2)+ 1服务模块插槽的附加功能表1.数据记录196内容 控制元素的说明如表2所示: 字节位含义分配的已组态插槽(如,在字节 4 中,偶数字节)0 到 6 0000000: 模块不可用0000001 直到*大插槽数: 实际插槽71: 空插槽(带有 BU 盖板)插槽的其它功能(如,在字节5中,奇数字节)01: 打开一个新的电势组。将 BU...B 更换为 BU...D. 如果设置该位,则将组态 BU...D。 如果没有为该插槽设置位,则使用组态软件中所组态的参数。1 到 7 预留表2.控制元素的说明在本例中,在DB1中存储该数据记录,并按实际配置参数化该DB块,如图4所示: 图4.在DB1中参数化数据记录196 在OB1中,当M10.0为1时调用SFB53,写数据记录至ET200SP接口模块,数据记录传输成功后,复位M10.0,不再调用SFB53,如图5所示: 图5.在OB1中编程写数据记录 该项目例程由STEP7V5.5SP3HF5创建。 |