SCL编程问题请教大侠

问题1:
var_output
,y0y1,y2,y3...yn:BOOL;
end_var

var
status:array[0..n] of bool;
end_var

有没有什么好的办法可以快速吧status赋值分布到y0到yn这些输出接口上,不使用sfc20,同意的问题出现在输入,输入都是bool,怎么把输入状态全部放到stat区的bool数组里用于计算。

问题2:
var
cyc:array[1..20]of real;
end_var

begin
for index:=0 to 20 by 1 do
   cyc[index]:= 0.0 ; 
end_for
为什么我程序里都没定义cyc[0],但是程序却不报错呢?cpu也不会寻址错误。这个深层次的原理是什么?

问题补充:
@youhm :也许是我没表达清楚,我的意思是我定义的cyc下标是从1开始的,而不是从0开始的。如果从1开始,那么并不存在实际的cyc[0], 另外不想使用sfc20的原因是太麻烦,还要定义any和struct,
VAR_TEMP
    anys:STRUCT
        a:BYTE;
        b:BYTE;
        c:WORD;
        d:WORD;
        e:WORD;
        f:WORD;
        END_STRUCT;
    data AT anys :ANY;
 END_VAR  

    data:= MV1;
    anys.b:=B#16#08;  //data type REAL 
    anys.c:=MAX_TIMER; //Repetition factor

RET:= BLKMOV(SRCBLK := data 
       ,DSTBLK := scale  
       );  在STL反而对这类问题很容易 L P##y0, LAR1,L #status ,T D[ar1,p#0.0] ,我已经用stl写了一个类似小功能块来解决这个问题了。

最佳答案

用SFC20就是好办法啊
没注意你定义的下标,下标使用变量编译器不会报错
因为你这个数组定义在静态变量里,编译器编译后,当下标等于0,相当于下标1的前一个变量,你这里数组类型是4字节浮点数,下标0的字节序号地址就是下标1的地址减去4,如果这个地址存在,cpu运行不会报错。

提问者对于答案的评价:
是啊,可惜编译器发现不了这个错误。

最佳答案作者回复:
从这个问题的现象看,在FB里可以用循环把位数组赋值给连续的输出变量,即第一个变量AT一个只包含一个变量的数组,假如数组的下标定义为0,那么通过变量下标寻址下标1就可以访问第二个变量了,或许这就是你想实现的。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc205766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月4日
下一篇 2017年11月4日

相关推荐

  • 如何将梯形图导出

    如题,怎么将博途软件中的梯形图导出?只要梯形图,不要其他的。有办法吗,急急急 问题补充:是做论文需要,最后需要附程序。也采用过截图的办法,但老师说最好给它导出来 最佳答案 打开要导…

    自动化系统综合 2017年6月8日
  • PLC应用范围

    S7-200和S7-300/400的应用哪个更广泛啊?请学长们指教,本人处在学习阶段,想从应用广泛的入手。 最佳答案 应该是200的它属于通用型PLC。在用200的场合大部分不会有…

    自动化系统综合 2020年11月1日
  • 能否在局域网络中访问一个plc。

    办公室使用局域网,然后买来一个plc。问是否可以每个人都能通过网络访问它? 最佳答案 当然可以。 硬件要求: 1.你的PLC要有以太网通讯处理器,如200的CP…

    自动化系统综合 2020年11月1日
  • 为什么控制模块上的焊盘上不了焊锡

    为什么控制模块上的焊盘上不了焊锡 最佳答案 那些焊盘是接前连接器的,分别对应20针前连接器,订货号6ES7392-1AJ00-OAAO40针前连接器,订货号6ES7392-1AM0…

    自动化系统综合 2020年10月31日
  • 设备的有线和无线通讯

    一个项目有多个相同的移动式设备,每台设备都配置PLC与触摸屏,每台设备都很简单,几个模拟量与开关量,现有以下控制要求:1.多台设备送到2KM远的中控室集中监控怎么通过有线方式实现?…

    自动化系统综合 2020年10月31日
  • S7-400通信口坏

    请教:S7-400 CPU412-1 的MPI通信口损坏了,我要修改程序有什么办法?我还有一台相同型号的在其它机器上用,能不能在好的机器上改好程序保存到储卡中,…

    自动化系统综合 2017年11月12日
  • 如何检测6SE6400-1PC00-0AA0的串口是否烧掉

    我用PC连MM440的,老是通讯不了。电脑这端用的是普通的CP卡转RS232,短接2、3引脚,用ACCESSPORT检测时,能接收到数据,说明电脑这端没问题,那么6SE6400-1…

    自动化系统综合 2018年12月9日
  • 关于PROFIBUS-DP的应用

    现有两台设备想应用PROFIBUS-DP做通讯,从站用S7-200同时有一触摸屏相连控制A设备,主站用S7-300同时有一触摸屏相连控制B设备,并且主站还连接计算机通过WINCC监…

    自动化系统综合 2020年10月31日
  • 推荐一本学习西门子PLC的书

    我是一名刚毕业的自动化专业的大学生,想从事技术工作,麻烦大家在闲暇的时候帮忙介绍一本学习西门子PLC的书 问题补充:写一下出版社吧,谢谢了 最佳答案 《深入浅出西门子S7-200&…

    自动化系统综合 2020年11月1日
  • PC Adapter编程电缆与Smart 700通讯

    请问PC Adapter编程电缆(6ES7 972-0CB20-0XA0)能用来下载Smart700的程序吗?这个电缆是可以支持PPI的啊 最佳答案 说明书上说…

    自动化系统综合 2017年12月2日