[西门子] TIA博途SCL编程学习54_跳跃游戏

[复制链接]
查看27461 | 回复0 | 2024-4-16 08:07:57 | 显示全部楼层 |阅读模式
1 | 题目



给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。编写程序判断你是否能够到达最后一个位置。

示例1:

输入:[2, 3, 1, 1, 4];

输出:TRUE(可以到达最后一个位置);

解释: 我们可以先跳1步,从位置0到达位置1,然后再从位置1跳3步到达最后一个位置。

示例2:

输入: [3, 2, 1, 0, 4];

输出:FALSE(不可以到达最后一个位置);
解释: 无论怎样,你总会到达索引为3的位置,但该位置的最大跳跃长度是0,所以你永远不可能到达最后一个位置。

2 | 设计分析



本题目不能一开始就从最大长度进行跳跃,应该一次次遍历每个数组元素,采用贪心法,#statMaxStep表示每次能够到达的最远距离,比较#statMaxStep和#tempI + #nums[#tempI],求出上一步的最优解,当#statMaxStep小于#tempI的时候证明已经不可能到达终点了,直接返回false,当循环变量#tempI走到末尾时则证明可以达到最后的位置。

3 | 创建功能或功能块



创建功能块FB,命名为“JumpGame”。

4 | 定义接口变量



具体接口变量定义见下图:


定义了可变长(泛型或可变限值)长整数类型一维数组,数据类型为#Array
  • of DInt,作为跳跃数据。定义布尔型变量#resultQ作为判断结果输出,TRUE表示可以跳跃,FALSE表示不可以跳跃。

    5 | 程序代码



    编写程序代码。如下图:



    当最大步#statMaxStep小于#tempI时,不能跳跃到最后位置,直接返回程序。当FOR循环变量能够到达最后时,说明可以跳跃到最后位置。

    6 | 代码测试



    在循环OB中调用FB-“JumpGame”。如下图:



    定义了全局数据块(数组DB)GdbJumpGameData作为实参传递给形参,注意数组DB的实参表达方式。

    转至在线并监控程序。如下图:



    上图为跳跃数组数据:3、2、1、0、4。



    上图为结果输出,#resultQ输出为FALSE,不可以跳跃到最后。



    上图为跳跃数组数据:2、3、1、1、4。



    上图为结果输出,#resultQ输出为TRUE,可以跳跃到最后。

    7 | 总结



    学习可变长一维数组的定义和使用;

    学习使用FOR循环语句;

    学习使用IF条件语句;

    学习RETURN在程序中的作用;
    学习在OB中调用FB和实参的传递方式。
    公众号:  巨控电子( 扫码关注 )      



       微信技术群:PLC工业自动化社区 (加好友标注:姓名-城市)






    对于1517H和1518HF在TIA Portal V18和FW3.0中有哪些变化呢?

    更新一:长距离同步模块

    扩展了远距离同步模块,1500H 两个CPU之间最远可达40KM。



    更新二:支持R1系统冗余

    除了之前就支持的PROFINET S2系统冗余,FW3.0中S7-1500H系统一个非常大的提升是开始支持PROFINET R1系统冗余。到底什么是S2?什么是R1呢?关于PROFINET系统冗余的几种模式的概念可以从以下知识小卡片中获取。

    知识小卡片



    ► S1设备

    指一般的PROFINET设备,在冗余系统中不具备无缝切换的能力,比如ET 200的标准型接口模块就属于S1设备(不过ET 200SP和MP的IO模块自身可以设置为输出保持的功能,可以在冗余CPU切换时候,保持输出从而也可实现无扰切换)。
    ► S2设备

    指ET 200SP/MP高性能接口模块,虽然是单个接口模块,但是具有两条连接到CPU的链路,可以实现无缝切换。
    ► R1设备

    指ET 200SP R1型接口模块,具备两个独立的网络通讯模块。

    新支持的R1系统冗余需要搭配使用ET 200SP R1型接口模块,这也是新发布的产品,以下是对这款产品的介绍。

    ET 200SP R1 系统组成包括:
      2x IM 155-6 PN R1接口模块1x BU-Type M0基座2x 相同的总线适配器1x SIMATIC 系统安装底板
      IO 模块



    基于1500H FW3.0和ET 200SP R1的双接口模块构建的PROFINET R1系统,可以组成双环网,双总线网。其基本网络架构如下:



    基于FW3.0和TIA Portal V18中S7-1500H的网络架构更加丰富,可以满足各种复杂应用场景的需要

    西门子WINCC


      博途WinCC专业版C/S架构入门指南

      咔!咔!咔!自动/停止/手动 - WinCC中的三档转换

      按图索数-WinCC中的“地图+数据”

      WinCC与S7-1500 R/H系统通信

      通过Web Service与WinCC交互数据

      可缩放矢量图形(SVG)在WinCC中的应用

      WinCC V7.5典型架构及选型指南

      自动语音播报WinCC报警消息


    西门子TIA博途

    1.S7-PLCSIM Advanced使用入门

    2.使用PLCSIM Advanced仿真博途PID

    3.使用PLCSIM Advanced仿真博途Modbus_TCP

    4.使用PLCSIM Advanced仿真博途S7-1500 OPC UA

    西门子TIA博途SCL学习

    1.西门子PLC用TIA博途SCL语言写的一个产生随机实数的指令块(学习1)

    2.TIA博途SCL编程学习2_sin(x)

    3.TIA博途SCL编程学习3_两个数的计算器

    4.TIA博途SCL编程学习4_选择法排序

    5.TIA博途SCL编程学习5_一串数字的加法

    6.TIA博途SCL编程学习6_数组逆序

    7.西门子TIA博途S7-1200/1500学习7间接寻址指令PEEK的使用

    8.TIA博途SCL编程学习8_计算N天后的日期

    9.TIA博途SCL编程学习9_百鸡百钱

    10.TIA博途SCL编程学习10_字符串日期转换成DATE数据类型

    11.TIA博途SCL编程学习11_多条件与运算

    12.TIA博途SCL编程学习12_数组求和两种算法比较

    13.TIA博途SCL编程学习13_电机正反转加点动

    14.TIA博途SCL编程学习14_填表格

    15.TIA博途SCL编程学习15_素数判断

    16.TIA博途SCL编程学习16_歌德巴赫猜想验证

    17.TIA博途SCL编程学习17_选择法排序

    18.TIA博途SCL编程学习19_分数段人数统计

    19.TIA博途SCL编程学习19_分数段人数统计

    20.TIA博途SCL编程学习20_换钱

    21.TIA博途SCL编程学习21_4个数字中的3个数字的排列组合

    22.TIA博途SCL编程学习22_奖金计算

    23.TIA博途SCL编程学习23_求最大公约数和最小公倍数

    24.TIA博途SCL编程学习24_一串数字的加法

    25.TIA博途SCL编程学习25_找出1-1000之间的完数

    26.TIA博途SCL编程学习26_小球反弹高度

    27.TIA博途SCL编程学习27_猴子吃桃

    28.TIA博途SCL编程学习28_一个分数序列加法

    29.TIA博途SCL编程学习29_五位数分解

    30.TIA博途SCL编程学习30_捡鸡蛋

    31.TIA博途SCL编程学习31_HelloWorld

    32.TIA博途SCL编程学习32_幂

    33.TIA博途SCL编程学习33_水仙花数

    34.TIA博途SCL编程学习34_完数

    35.TIA博途SCL编程学习35_另类比大小

    36.TIA博途SCL编程学习36_自然数反转

    37.TIA博途SCL编程学习37_数字加密

    38.TIA博途SCL编程学习38_三种方法求最大公约数

    39.TIA博途SCL编程学习39_友好数

    40.TIA博途SCL编程学习40_平方回文数

    41.TIA博途SCL编程学习40_斐波那契数列

    42.TIA博途SCL编程学习41_大数乘法

    43.TIA博途SCL编程学习42_三位数的组合

    44.TIA博途SCL编程学习43_新娘和新郎

    45.TIA博途SCL编程学习44_韩信点兵

    46.TIA博途SCL编程学习45_过桥问题

    47.TIA博途SCL编程学习46_分鱼问题

    48.TIA博途SCL编程学习47_跳跃游戏

    49.TIA博途SCL编程学习47_狼追兔子

    50.TIA博途SCL编程学习50_扑克牌顺子判断

    51.TIA博途SCL编程学习51_邮票组合

    52.博途SCL编程实例泵顺启逆停的状态机

    53.TIA博途SCL编程学习52_邮票组合抓捕交通肇事犯

    54.TIA博途SCL编程学习53_求车速

    组态软件远程监控

    组态软件远程监控功能说明

    1.本地上位SCADA系统采集分布各地现场PLC等设备运行的数据,并可以下发控制指令;

    2.提供OPC接口服务(OPC UA 及OPC DA),常年稳定运行,规模可达10万数据点;

    3.支持Kepware,Wincc(含博途),IFIX,INTOUCH,组态王,力控等上位机软件,完美兼容;

    4.配巨控免费组态软件,可实现图形界面,远程视频(萤石云)、报表系统,报警等。

    5.支持多台上位机同时监控,采用转发压缩技术,多客户端不增加流量费用。

    6.独有压缩和多包并发技术,远程通过4G上网,数百个数据点,上位机可保证秒级内响应。



    组态软件远程监控系统架构         

    1.远端现场PLC等工控设备和巨控PLC无线通讯模块连接,可使用串口,网口等多种通讯方式。

    2.无线通讯模块可通过4G/WiFi/以太网多种方式连接巨控云安全服务器。

    3.本地数据中心的上位SCADA系统能上网即可通过OPC采集数据,无需固定IP,端口映射。

    4.如果有多台巨控模块,可以通过一台上位机集中监控各地的PLC。

    5.如上位机无法上网,或不想暴露在公网,可选配巨控4G安全路由器(GK-ROUTER)。



    组态软件远程监控支持的PLC         

    1.巨控PLC无线通讯模块可支持西门子,三菱,欧姆龙,AB和各种国产PLC。

    2.巨控PLC无线通讯模块通过MODBUS可以支持各种变频器,仪表,触摸屏。

    3.巨控PLC无线通讯模块自带IO,可直接接开关量,模拟量传感器,测温探头等。



    组态软件远程监控优势         

    1.非透传模式,全部数据加密,平台具备赛门铁克安全认证,确保数据安全。

    2.采用先进的压缩算法,节约远程模块流量,典型应用一个月仅需100M流量。

    3.多包并发技术,采用4G上网,同时监控数百个变量,上位机也可做到秒级以内响应速度。

  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册哦

    x
    您需要登录后才可以回帖 登录 | 注册哦

    本版积分规则