找回密码
 立即注册
查看: 921|回复: 12

有关现在自动控制系统编程的几个误区

[复制链接]

该用户从未签到

28

主题

24

回帖

307

积分

荣誉版主

积分
307
发表于 2023-7-28 22:28:45 | 显示全部楼层 |阅读模式
本帖最后由 redelz 于 2023-8-2 07:46 编辑

1,为什么编写自动控制系统需要什么BIT,BYTE,WORD,长整数短整数,单精度、双精度浮点数等等这些都是从传统计算机继承下来的概念。我们的数学和物理概念根本不需要这些格式。所以学习完数学和自动控制理论再来学习这些计算机专用数据非常没有必要,也干扰编写自动控制算法表达。
2,传统计算机编程语言都是没有时间概念,都是及时返回过程函数。这和人们对过程运动的开始,持续,结束这样的自然时间理解是完全背离的。想用计算机通用编程语言编写这样的控制算法非常困难。表及其不自然。
3,我们现有PLC产品(包括国外PLC产品),国内被推崇为所谓“工业4.0”和传统的自动控制原理所阐述的动态运动算法没有任何联系,等于我们放弃了最宝贵的基础算法库。用C/C++,Python等通用语言编写复杂控制算法几乎不可能,编写的算法根本无法验证和测试。
4,我们还可以列出很多。我会在后面技术帖子逐步展示。
5,随着计算机基础技术的发展,联网,标准设备驱动等等基础技术基本成熟。如我们不在新的方法上研发,任然守着传统概念不放是非常短视的。
回复 送花

使用道具 举报

该用户从未签到

66

主题

719

回帖

1万

积分

荣誉版主

积分
11003
发表于 2023-7-29 00:46:22 | 显示全部楼层
楼主的观点1“1,为什么编写自动控制系统需要什么BIT,BYTE,WORD,长整数短整数,单精度、双精度浮点数等等这些都是从传统计算机继承下来的概念。我们的数学和物理概念根本不需要这些格式。所以学习完数学和自动控制理论再来学习这些计算机专用数据非常没有必要,也干扰编写自动控制算法表达。”我完全不赞同。

(1)数学和物理概念当然包括这些这些格式!
1)逻辑学中的真假在布尔代数中就是用0/1来表示,并且建立了已整套的理论体系。所以用计算机解决逻辑问题,计算机语言当然需要BIT类型数据。
2)硬币的两面,骰子的六个点,控制论中有限自动的状态都是离散的值,甚至包括量子力学的有限状态,这些值在数学物理中都是用整数来表示,并且有了统计学,控制论等严格的科学理论和实践。所以要用计算机解决这些有限状态和离散数学的问题,计算机语言当然需要BYTE、WORD等整数类型数据,不同的整数类型对应不同的“值域”而已。
3)数学、物理和自动控制论中的时间、空间等量都是实数类型,数论告诉我们,任何一个实数的无限靠近的地方都有一个有理数,通俗说就是可以用有理数以无限的精度“逼近”任何一个实数。由于数字计算机只能表达有理数,因此计算机语言中用单精度、双精度浮点数这些有理数来表示现实世界的实数。所以用计算机解决自动控制问题和实现自动控制算法,对于时间变量,对于被测量和被控制的真实世界变量,计算机语言当然需要单精度、双精度浮点数类型数据。
4)计算机的专用数据是真实世界数据的反映,如果你连这些专用数据都不掌握,在过去和未来几年内你如何“编写自动控制算法表达”?除非等到下个世纪
回复 支持 反对 送花

使用道具 举报

该用户从未签到

66

主题

719

回帖

1万

积分

荣誉版主

积分
11003
发表于 2023-7-29 00:52:24 | 显示全部楼层
对于楼主的第2个观点“2,传统计算机编程语言都是没有时间概念,都是及时返回过程函数。这和人们对过程运动的开始,持续,结束这样的自然时间理解是完全背离的。想用计算机通用编程语言编写这样的控制算法非常困难。表及其不自然。”,建议修改为“有些/大部分/常见的传统计算机编程”来明确你所指的范围。如果你确定是指“所有的传统计算机编程语言”这样的全称结论,那么,呵呵,我不赞同你的观点,只能建议你再学习学习了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

66

主题

719

回帖

1万

积分

荣誉版主

积分
11003
发表于 2023-7-29 01:07:31 | 显示全部楼层
(1)对于楼主的第3个观点中的“用C/C++,Python等通用语言编写复杂控制算法几乎不可能,编写的算法根本无法验证和测试”说法,我只能呵呵了,你觉得不可能,不代表别的程序员不可能。比如高铁、自动制造的控制系统中就没有使用通用语言编程的程序了?

(2)目前STC的8位单片机和32位的单片机,几乎只使用C语言,按照你的看法,STC单片机在工业控制、汽车控制领域就不能应用了?你见过在大学生电子比赛上用STC单片机和Keil软件制作的各种小车运动和机器人系统了吗?你见过用STC单片机的四轴飞行器吗?这些控制不复杂吗?这些实际的模型和系统都已经动起来了和飞起来了,你还觉得这些STC单片机的C语言程序“的算法根本无法验证和测试”吗?

回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 187 天

    [LV.7]常住居民III

    5

    主题

    97

    回帖

    1249

    积分

    荣誉版主

    积分
    1249
    发表于 2023-8-3 14:15:27 | 显示全部楼层
    第1点,可能LZ是想说PLC基本使用梯形图编程,不涉及传统的C语言编程的模式吧。就类似有人说熟悉了C语言,就不用死记汇编中的寄存器、指令等等。。。

    46
    (仅供参考,欢迎探讨)
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-7 18:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    13

    回帖

    219

    积分

    中级会员

    积分
    219
    发表于 2023-8-3 15:04:01 来自手机 | 显示全部楼层
    本帖最后由 zgrfox110 于 2023-8-3 16:03 编辑

    计较啥?用python就需要编译程序支持,库太大,PLC内存多大?执行一遍需要多少时间?你们以为是嵌入式呢?大点没问题?PLC存储空间多大?全装库了。还有分BYTE大小,不是传统计算机遗留下来的,是现在依然需要节约内存。单片机做成PLC也是解释型的,要求执行时间短,反应时间快!都没用过,就没有发言权!以前航天飞机用的内存很小。现在用的ucos也不大,谁用python?只有民用电脑才会使用,开发效率高,运行效率低!也就是现在电脑处理器快了,觉不出来了!

    点评

    哥们,“现在用的ucos也不大,谁用python?”,ucos是在PC级上用C语言编程,也要用编译器编译,然后才烧录到单片机,不是在单片机上的用ucos编程  详情 回复 发表于 2023-8-4 01:41
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    719

    回帖

    1万

    积分

    荣誉版主

    积分
    11003
    发表于 2023-8-4 01:41:53 | 显示全部楼层
    本帖最后由 杨为民 于 2023-8-4 01:53 编辑
    zgrfox110 发表于 2023-8-3 15:04
    计较啥?用python就需要编译程序支持,库太大,PLC内存多大?执行一遍需要多少时间?你们以为是嵌入式呢? ...

    “现在用的ucos也不大,谁用python?”,ucos是在PC机上用C语言编程,也要用编译器编译,然后才烧录到单片机。现在在树莓派和arduino等好多种类型的单片机都可以用python在PC机上编程了

    点评

    注意一下,这里说的是PLC的开发,不是整个单片机里面的作用  发表于 2023-8-4 07:35
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    28

    主题

    24

    回帖

    307

    积分

    荣誉版主

    积分
    307
     楼主| 发表于 2023-8-4 08:47:06 | 显示全部楼层
    本帖最后由 redelz 于 2023-8-4 11:59 编辑

           系统软件编程肯定不同于功能应用性的编程。首先必须要进行抽象。没有高级的抽象就不可能编出高级的系统功能。实际上C语言和汇编语言都是适合于底层系统编程的工具语言。当然在一个具体的应用功能编程中采用C语言和汇编语言直接编写算法也是无可非议的,也是完全正确的选择。在互联网领域里采用HTML作为编程语言,是看不到任何传统的编程语法的,并且我们还需要采用工具来编写HTML语言程序。但是我们可以通过通用浏览器将它解析成几乎任意功能的算法。C语言和汇编语言只是一种传统的图灵算法表达,他的确具有无可争议的算法表达完备性。但是我们需要更接近传统数学和物理模型的算法表达方式,我们更需要没有附加错误,不需要关心具体内存分配,更没有内存泄露,也不需要关心代码生存期这样的新的编程方法。当然要实现这样高级的开发工具,还是需要C语言和汇编语言这样的基础编程方法才能实现。我们为什么强调要进行图形化编程,因为通用计算机特别是Windows的图形界面还有图形编程方法已经达到了无所不能的境地。我们要充分利用计算机发展的最新成果来实现嵌入式系统的编程工具和方法。如果我们仍然抱着只能使用if,then,case这样的方法才能编写软件,而且还想用这种最原始的方式写出复杂的算法,肯定是非常过时的想法。
           就是像Solidworks,Visual Studio这样的顶级软件也不可能单独使用C++,或者C#实现全部开发,也必须借助于高级的软件工具才能实现。实际上VB,WPF都做了图形化编程的探索。工业控制领域里面的图形组态软件也进行了不需要编写任何程序代码实现程序逻辑表达的探索。所以在嵌入式系统开发工具里进行新的编程工具探索是完全自然而然的研发抽象。
           在STC单片机编程中我们强调需要进行基础算法封装,就是要避免重复进行不必要的基础编程,并且实现高水平的基础算法积累。通过更加高级好用的工具来使用这些基础算法应用。STC单片机的计算潜力是非常巨大的,编程开发工具可以在实际应用中充分发挥这种巨大的计算潜力。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    8

    主题

    22

    回帖

    178

    积分

    注册会员

    积分
    178
    发表于 2023-9-24 19:27:42 | 显示全部楼层
    本帖最后由 MWX 于 2023-9-24 19:29 编辑

    感觉楼主想说编程软件有点问题。也就此事谈看法。从单板机到现在,底层汇编,创造此语言的是外国人,基础是英文,思维上不同,就是同种人,理解问题的方法也不同,难免带有个人特性。也可以说并不完美。所以只让小数人能识皮毛,认识几个老的专业人员,底层及专讲师都是名大学教授级的。后来都无正业了哈。于学硬件电子的一样大多皮毛功夫。从不研究理性逻辑?问题的重点与实践。混饭吃的。哄学生玩的。向东还是向西简单的意思,片机上要先定义男女,多大年轮,属什么的,谁家的,站在什么地方,是面北还是面南,是否脑要清除,还是要存于眼上,脑子够用否。笑一笑。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:01
  • 签到天数: 137 天

    [LV.7]常住居民III

    9

    主题

    93

    回帖

    652

    积分

    高级会员

    积分
    652
    发表于 2023-11-12 14:54:43 | 显示全部楼层
    关于1问题。是计算机运行计算的基础条件,位,整数,长整数,浮点数等都是为了告诉计算机你处理是什么数,因为计算机处理就是二进制,8位为一个基础字节,这1个字节有256个变化却相互组合代表着数学中的数与各种语言中的基础“拼音”,所以使用时统一规定与声明是无可厚非的,要是记不住知道就行,

    关于第2个问题,你表达是有问题的,时间是做控制永远也绕不开的标准,就任务而言可以开始--运行---结束,但你不可能就是这一个任务,所以分时处理是合理必须的,就像人的大脑样,一次只关注处理一个事情,进行一个阶段关注其他的事情进展情况一样,从时间的角度来看就是以时间片来处理。

    关于第3个问题,什么叫运动,是相对时间内的物体的空间位置的变化,衡量这个过程主要参数是单位时间,和空间坐标,所以运动算法才更有强烈的时间标尺的表述,所以很多精确运动控制都要处理在单位时间内各轴是否同步的运动到制定的位置,所以越是单位时间同步到所控制的位置才越精确,这更是汇编,C语言发挥作用的地方,因为指令已经是最底层了,运行效率已经最高了,

    点评

    首先感谢能够关注有关自动控制系统编程的评论。有一个现实那就是优秀的软件的确要通过市场运营,才能被广为接受,才能成长成熟。但是这一点并不妨碍我们每个人都是可以从事基础软件研发和技术探讨。 的确“直接采用  详情 回复 发表于 2023-11-13 07:03
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-17 23:52 , Processed in 0.091620 second(s), 70 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表