博图SCL数据处理
函数块(简单重复的数据计算案例)
放青松
对未来有所期待
展开
-
博图循环左移字符串与循环左移整数算法程序
1.将字符串循环左移,如ABCDEFG,从3位置循环左移后为DEFGABC1.将数值循环左移,如1234567,从3位置循环左移后为4567123。原创 2024-05-07 10:23:18 · 130 阅读 · 0 评论 -
博图数值按照特定格式(“T000000”)转换成字符串
数值按照协议格式,转成字符串。方便和第三方厂家对接。如码垛线使用字符串数据,立库厂家使用dint数据类型,上位机使用DINT数据类型,为了判断数据传输、与动作流程,需要条码的比较,此时可以将数值转成字符串原创 2023-10-15 11:31:13 · 663 阅读 · 0 评论 -
【无标题】博图SCL_程序减少内存消耗,提高程序执行效率技巧
减少程序内存消耗,提高程序运行效率,以及博图程序设计规范原创 2023-01-17 14:13:04 · 692 阅读 · 0 评论 -
博图SCL_最小覆盖子串
练习SCL写函数块处对字符串进行处理,查找一个字符串内涵盖另一个字符串所有字符的最小的字符串原创 2022-06-06 21:13:15 · 398 阅读 · 0 评论 -
博图SCL_字符串处理(将上位系统发送字符串解析为ASCLL码)
一、前言截取{}内数据为有效数据,转换为单个字符数组与ascll码二、程序1.数据仿真显示2、方法12.1、将string字符串存入到字符数组内2.2、查找 字符‘{’‘}’位置,通过循环将此有效区间内的数据取出2.3、转换成自己所需的数据格式,char 或者 int3、方法23.1、查找 字符‘{’‘}’位置,截取有效区域形成新的字符串3.2、取有效区的字符串string为字符数组..原创 2022-04-07 21:25:56 · 7005 阅读 · 0 评论 -
博图PLC_SCL算法,自动找出MxN网格的最小路径和,并输出其路径
博图SCL算法_递归、函数、方法;使用递归解决一个复杂问题;在一个Mx N网格内,从左上角到右下角右多少路径?那个路径上的总和最小?如何显示其路径上每一个位置节点信息?原创 2022-03-29 22:45:22 · 1335 阅读 · 0 评论 -
PLC_SCL数据查找算法
一、定义规则一个未排序的整数数组,请找出其中没有出现的最小的正整数。定义数组范围0---300、数据类型DINT二、案例下载链接!https://download.csdn.net/download/fenglingxicao/84827657...原创 2022-03-14 16:44:04 · 909 阅读 · 1 评论 -
PLC码垛程序算法
PLC码垛程序算法,可根据产品类型、托盘尺寸、产品长宽高尺寸、原点位移、补偿等自动计算坐标。参数可设置原创 2021-12-05 23:34:33 · 7544 阅读 · 0 评论 -
PLC算法_解析ABB机器人当前位置数据
一、前言①Socket通信协议读写字符串数据②博图处理字符串数据,按照一定规律解析ABB机器人位置数据(PERS robtarget ClawPose:=[[1748.72,380.01,127.016],[0.999791,-0.017557,-0.010476,0.00018],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];)③本案例使用通用函数处理字符串,读取以’,'为标志位;循环多次分别解析出X、Y、Z方向位置数据,以及机器人四元数数据原创 2021-09-24 22:19:01 · 4108 阅读 · 0 评论 -
博图SCL_递归算法的应用
一、前言二、案例三、总借原创 2021-09-04 11:07:04 · 2482 阅读 · 0 评论 -
西门子PLC快速查找数据算法
一、查找算法1、当我们在一个 链表 或者 顺序表 中 查找 一个数据元素 是否存在 的时候,唯一的方法就是遍历整个表,这种方法称为 线性枚举。如果这时候,顺序表是有序的情况下,我们可以采用折半的方式去查找,这种方法称为 二分枚举。线性枚举 的时间复杂度为 O ( n ) ,二分枚举 的时间复杂度为 O ( l o g 2 n )2、PLC查找数据一般使用场景:在博图软件中预先定义好数组,根据数组下标索引到数据;那这就是一个典型的底层实现结构是一个数组,数组类型可以是任意类型,而且数组下表是有序的,那我们原创 2021-08-29 17:05:58 · 2717 阅读 · 0 评论 -
信息化和自动化(PLC)间XOR校验传输数据准确性
一、前言①信息化技术的发展和自动化要求的不断提高,自动化设备需要实时与软件进行信息交互,传递任务数据在信息交互的过程中我们如何判断交互信息的准确性?②此处我们采用一个基础方式,对任务信息进行一定编码,自动化控制系统也进行同样编码(异或校验),当两者相同时代表信息传递正确二、SCL代码FUNCTION “XOR_Word” : Void{ S7_Optimized_Access := ‘TRUE’ }VERSION : 0.1VAR_INPUTDB_No : Int;Offset : In原创 2021-01-20 17:37:38 · 727 阅读 · 0 评论 -
博图SCL_先进先出排序法
实验案例DB区按写入数据的先后顺序存储,遵循先进先出原则,且移出的数据,后续位置数据自动以压栈的方式补充1、主程序调用及数据块定义主程序可调用多次数据块,填写不同区域的引脚可排序多个数据区2、SCL程序程序分为先进(写入数据排序)、先出(先进先出)、压栈(自动向前填充)3、HMI演示写入(写入大于0的值+点击write阿按钮)、读取(点击Read按钮),读取数据会在读取值内显示...原创 2020-06-24 22:28:25 · 9127 阅读 · 9 评论 -
博图SCL_约瑟夫入狱
实验案例要求描述:约瑟夫入狱,监狱内共有33个犯人。某日33名犯人围成一圈,从第一个犯人开始报数,报到数字7的犯人出列,被枪毙,下一名犯人重新从1开始报数。依次类推,直至剩下最后1名犯人可被赦免。聪明的约瑟夫在心里稍加计算,算出了最后枪毙的位置,他站在这个位置,最终避免了自己被枪毙,逃出升天问:约瑟夫算出的是哪个位置?1、主程序上升沿触发函数计算一次,并输出存活犯人编号2、SCL程序用0与1表示33个犯人是否存活,0表示存活、1表示死亡3、仿真演示更改Caculate变量为1,调用一次函原创 2020-06-23 22:31:46 · 653 阅读 · 0 评论 -
博图SCL_冒泡排序法
实验案例读取DB块内数据,将其按从小到大的顺序排序。熟悉博图SCL中FOR循环和数值替换法1、数据块定义定义数据块内数组型初始值与排序值2、主程序调用填写FC1函数块引脚,1=DB_NO(读取DB1数据内),9=Len(读取到数组某位置),0=N_START(定义读取起始位置,从数组[0]开始读取数据)3、SCL冒泡排序程序①PEEK+FOR循环读取初始值,将其按位置写入排序区等待排序。②采用冒泡排序法,外循环代表循环#Len次,相邻的两个数值进行比较大小,内循环代表操作当前数组的下标,并原创 2020-06-21 22:01:09 · 11027 阅读 · 1 评论 -
博图SCL_输出多维变长数组内最大数值及其数组上下标
实验案例自定义一个二维数组,输出矩阵中值最大的元素,并输出其数组上下标。熟悉博图SCL中FOR循环的使用。1、数组定义建立二位数组[0…2,0…3],范围是3×4的矩阵2、程序调用主程序调用SCL函数,并填写引脚3、SCL程序段自动读取数组范围(最小下标与最大上标),两层循环嵌套判断矩阵内的最大值4、HMI仿真测试更改矩阵内任意位置内数值,SCL自动排序找出矩阵内最大值,并输出其在数组内的下标与上标...原创 2020-06-21 20:06:16 · 6408 阅读 · 4 评论