V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
internelp
V2EX  ›  程序员

大家乘电梯的时候会想电梯的程序怎么写吗

  •  
  •   internelp · 103 天前 · 7244 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。
    75 条回复    2021-07-13 17:14:51 +08:00
    keepeye
        1
    keepeye   103 天前   ❤️ 15
    会啊,被关在电梯里出不来的时候我就想问候写控制程序的哥们
    typetraits
        3
    typetraits   103 天前   ❤️ 2
    我现在公司写字楼的电梯,简直令人崩溃
    一共两部电梯,我观察了两个月,有如下发现
    1. 按按钮后,一定是距离当前楼层远的那台电梯过来,不论上下;
    2. 上楼的优先级远高于下楼,在一楼进入电梯,会先到楼上,再返回 B1 ;
    3. 越高的楼层权重越低,在 5 楼基本必停,但是在 12 楼曾经多次看着电梯在低楼层反复十多次也没上来。
    所以我现在选择走楼梯,有等电梯的时间都走几个来回了
    Leonard
        4
    Leonard   103 天前   ❤️ 7
    会思考逻辑,不会思考具体代码。
    感觉有的地方的电梯逻辑有点弱智。
    autoxbc
        5
    autoxbc   103 天前   ❤️ 1
    PLC 课程里有,不考虑复杂场景的话,其实比较简单
    falcon05
        6
    falcon05   103 天前 via iPhone   ❤️ 1
    以前我也想过,后来发现电梯程序很复杂,很多不同的调度算法。
    KevinChan
        7
    KevinChan   103 天前
    感觉莱茵电梯的程序很脑残,V2 上有想装电梯的建议避坑。
    namelosw
        8
    namelosw   103 天前   ❤️ 1


    想到大家都是差不多的程序员,再考虑 sensor 本身的可靠性,所以别太掉以轻心了,剪切这种事情是有几率发生的

    而且我记得电梯是有很多套调度策略可以换的,有时候看它弱智,其实是被改到省电模式了... 毕竟物业和租户的利益并不是一致的

    据说以前还有某些小众奇葩的电梯装的 XP 来支持远程更新,但是也因为这个被搞了很多后门
    SelFree
        9
    SelFree   103 天前   ❤️ 22
    lusi1990
        10
    lusi1990   103 天前
    不会
    la9998372
        11
    la9998372   103 天前   ❤️ 1
    自动化专业的本科生有门 PLC 的课程,一般就会写电梯的程序。西门子还举办过电梯大赛
    Jface
        12
    Jface   103 天前
    每次都想会想电梯去停留的逻辑怎么写的, 同时很多人按下到底咋计算
    还有一个问题: 大家下楼按电梯, 是按往上走 还是往下的那个?
    按往下走的: 我要下去, 所以按往下
    按往上走的: 我要下去, 电梯应该从下面来接我, 所以按上让电梯上来
    mitong3269
        13
    mitong3269   103 天前 via iPhone
    plc 课程上学过,自己写过简单的电梯的梯形图
    那种高楼层,短时间大流量的不知道怎么来了,让人头大
    IgniteWhite
        14
    IgniteWhite   103 天前 via iPhone
    有限状态机。PLC 之类的就够,硬件逻辑直接实现,不用 CPU 跑高级语言
    baiyi
        15
    baiyi   103 天前   ❤️ 6
    我会经常想这个电梯的关门按钮是不是安慰剂效应
    paradoxs
        16
    paradoxs   103 天前
    程序满足不了实际情况。

    你看人稍微多一点的大厦,早高峰期都有配备专门的按电梯的小姐姐
    xiaoyudesu
        17
    xiaoyudesu   103 天前
    @Jface 第一种 去下面就按下
    A388
        18
    A388   103 天前
    @SelFree 实际情况还要考虑人性的问题。比如,一个人坐电梯到 30 楼,但是上升到了 2 楼,这时候 1 楼有人要坐电梯了。最好的办法就是 2 楼的电梯,重新下到 1 楼。但是实际上不行
    krixaar
        19
    krixaar   103 天前
    @Jface 底层一般只有个上按钮,顶层一般只有个下按钮,如果按照“把电梯叫过来”的逻辑,这两个位置说不通,底层需要按按钮的时候,电梯在你上方应该按下,顶层同理。所以我倾向于人下楼按下,上楼按上。
    RyuZheng
        20
    RyuZheng   103 天前
    会,广州高德置地广场的写字楼,电梯是在外面输入楼层的,进去后不能按(其实有按钮,但是是锁起来的用来维修时用的小按钮),进去后不能按,进去后不能按,重要事情说 3 遍;

    外面按去哪个楼层就算了,主要是程序很傻,有一定队列数,比如上班 /下班时间,如果有 5 个楼层按了去 B1 层,第 6 个楼层怎么按都是电梯已满,请稍后;他不是按照电梯是否超载来判断已满的;

    但是你可以按去其他楼层,比如 15 到 10 楼的;

    于是每到上班 /下班时间,就看到很多人在不停地按去不同的楼层,以搭上这个电梯。。。。。。

    据说电梯是外国进口的,可能外国的程序员没想到珠江新城那么多人吧。。。。无力吐槽
    Carlgao
        21
    Carlgao   103 天前
    会想到机械硬盘的调度算法
    kiracyan
        22
    kiracyan   103 天前   ❤️ 1
    多电梯调度才是关键
    RyuZheng
        23
    RyuZheng   103 天前


    给大家看看这个电梯的样子,电梯间很好看很高级,在红色圆圈的面板上输入楼层,但是实际非常不好用
    yyyyda
        24
    yyyyda   103 天前
    @RyuZheng 腾讯大楼好像就是这样的
    agagega
        25
    agagega   103 天前 via iPhone
    写过一次之后就不再想了。而且考虑到电梯随时都有可能有人在任何位置按按钮,所以很难达到整体最优解。
    Cloutain
        26
    Cloutain   103 天前
    要看什么规格的电梯,要是小区里面那种就比较简单。要是大型办公楼那种,可以做很多设置。
    liaojl
        27
    liaojl   103 天前 via iPhone
    我记得大学操作系统里讲磁盘的时候有个电梯调度算法。
    young1lin
        28
    young1lin   103 天前
    国外有个 http://play.elevatorsaga.com/#challenge=2

    我之前玩过,当时玩得不太好
    kensoz
        29
    kensoz   103 天前
    电梯程序,这种涉及硬件的东西,为了安全性,控制程序和测试简直就是噩梦。
    yanzhiling2001
        30
    yanzhiling2001   103 天前
    我还真想过电梯的调度算法。可以电梯来了就打断了,下次还得从头想
    Heartbleed
        31
    Heartbleed   103 天前
    操作系统里讲磁盘,最简单的一般都遵循“顺路“原则吧
    guog
        32
    guog   103 天前 via Android
    @Jface 那是旧式电梯,新式是按目标楼层,没有上下
    tyr0ne
        33
    tyr0ne   103 天前 via iPhone
    坐电梯的时候不会想,等电梯的时候会
    pkookp8
        34
    pkookp8   103 天前 via Android
    会,明明再加一个人就超重,就是每层都停
    mainlong
        35
    mainlong   103 天前
    我观察了楼道的电梯,26 层两部电梯,没用的时候,早上一般都是一台在一楼,一台在 10 楼,下班的时候一般都在一楼。

    也就是,电梯没人用且没人按,会按如上楼层停置,
    ouqihang
        36
    ouqihang   103 天前 via Android
    @pkookp8 有些电梯就很智能,满员了就不停。然后外面的人看到电梯怎么走过了不停,低楼层的噩梦。
    JerryCha
        37
    JerryCha   103 天前
    论电梯集群如何做负载均衡
    someonedeng
        38
    someonedeng   103 天前
    会思考逻辑,然后发现事情没这么简单。。
    ohiu
        39
    ohiu   103 天前
    @RyuZheng 智能分配电梯,本来用的就比较少,至少 4 台同时运行才能体现效率
    HankLu
        40
    HankLu   103 天前   ❤️ 1
    不止电梯,看到任何带电的都会想他是怎么控制的
    lzz120
        41
    lzz120   103 天前
    经典面试题
    dickinpit
        42
    dickinpit   103 天前
    不是程序员,但不爽的电梯体验多了,挤在里面的时候也会想。今天知道了,原来是 PLC
    gyf304
        43
    gyf304   103 天前 via iPhone   ❤️ 1
    电梯逻辑其实非常复杂 一些常见的运作模式: https://elevation.fandom.com/wiki/List_of_elevator_special_modes
    reiji
        44
    reiji   103 天前
    学单片机的时候写过简单的实现,当时觉得做嵌入式的真厉害啊
    chenyu0532
        45
    chenyu0532   103 天前
    据说面试高级游戏策划会考电梯逻辑,不知道真假。。没接触过大牛策划
    736531683
        46
    736531683   103 天前
    人机交互课讲过和电梯交互的逻辑
    fenglangjuxu
        47
    fenglangjuxu   103 天前
    经常会想 不仅是电梯 好多事情都会去想 代码逻辑咋写的
    ligo
        48
    ligo   103 天前 via Android
    搞复杂了不可预测,会焦虑。
    winglight2016
        49
    winglight2016   103 天前
    10 年前给团队布置过这个电梯算法的题目,大家都是口头讨论一下,也没有特别好的方案——据说好的算法可以买个上百万
    zxhy
        50
    zxhy   102 天前
    会看上面的广告,思考怎么切图。。
    xieyingli
        51
    xieyingli   102 天前 via Android
    @baiyi 哈哈哈所以到底是不是
    wdssmq
        52
    wdssmq   102 天前
    我比较好奇 电油汀 的逻辑。一个高中低三档的旋钮,还有另一个旋钮,后一个旋钮转到响一声时灯会亮,运行一段时间就会断掉,再继续转又会亮,或者等温度降下来。

    感觉像是设置温度 阈值,到达温度后就会停止工作,凉下来通电。问题是按这样理解的话阈值只能调高不能调低吧。
    snw
        53
    snw   102 天前 via Android
    @RyuZheng
    我们写字楼比这个好些,不同点在于要去的楼层不是自己按的,而是电梯厅门口闸门刷卡时根据卡来判断去哪层,这样就不存在乱按楼层的情况。刷完卡就自动分配一部电梯。
    snw
        54
    snw   102 天前 via Android
    就算只有一部电梯,我也会想临界情况。
    比如电梯向下经过 10 楼时,9 楼有人按了向下按钮,停不停?同样经过 10 楼时,8 楼按了停不停? 7 楼呢? 6 楼呢?

    大人教育小孩不要乱按楼层时,常常说楼层按太多电梯会出故障,不知道是否真的有电梯程序太烂遇到这种问题。相反的有“电梯下坠时立刻按下所有楼层能自救”这种流言。。。
    corvofeng
        55
    corvofeng   102 天前 via Android
    我会想, 电梯里面有没有特殊的组合能有最高特权。 比如按 3 个 6 能到特权模式, 然后想去哪楼都能马上去(^_^メ)
    Tompes
        56
    Tompes   102 天前
    本科汇编语言实践课就是实现个电梯调度程序
    opentrade
        57
    opentrade   102 天前
    会,一出问题就想到 bug
    Jasonkkk
        58
    Jasonkkk   102 天前
    北航本科会用 java 做多线程电梯,a little smart,和现实里的还是有差距的
    24bit
        59
    24bit   102 天前
    Biwood
        60
    Biwood   102 天前 via iPhone
    一直蛮好奇边界情况的判断是怎么做的,比如正在下行的电梯离我的楼层越来越近,距离最少是几层的时候按按钮它才会停,应该会涉及到电梯质量与惯性等相关的计算
    danhahaha
        61
    danhahaha   102 天前
    @wdssmq 那玩意没有逻辑可言,本质就是 3 档开关接 3 个温度开关,另一个旋钮应该是定时,没有任何芯片代码,纯电路板
    jakec
        62
    jakec   102 天前
    @Jface 这个思路是有点厉害
    WellLee
        63
    WellLee   102 天前
    有些电梯还会在内部设置只有刷卡才能达到别的楼层
    wdlth
        64
    wdlth   102 天前
    公司的那几部很奇葩,经常出现一堆楼层挤到一个电梯,然后每层都停……
    x009ba1
        65
    x009ba1   101 天前
    @liaojl 磁盘的那个电梯调度算法不一样,它不管你是“上”还是“下”的,只要你在它的前进方向上它就会“开门”,现实生活里的电梯用不这个了
    seedscoder
        66
    seedscoder   101 天前
    上个月找工作,就遇到一个一个面试官,问我:“如何设计一套基本可用的电梯程序”
    RyuZheng
        67
    RyuZheng   101 天前
    @yyyyda # 24 我找到这款电梯的型号,TKE zeta300,好像是个德国牌子 https://www.tkelevator.com.cn/cn-zh/products/elevators/zeta300/

    B 站还有人专门拍电梯的 https://www.bilibili.com/video/BV1WJ411P76X?p=2

    @ohiu # 39 你看我发的图,就是 4 台电梯,2 个仪表盘,输入后会分配其中一台的;

    这样更加噩梦,高峰期,电梯间都是人,我站在 D 口,分配到 A 电梯,根本挤不上去,最后只能慢慢等到 D 电梯开门,上去较高楼层,再走楼梯下去。。。

    @snw # 53 刷卡这种比较好,不过这个电梯感觉就是程序有点问题,一开始大家也只会按想要去的楼层,但是它排队得太少,根本排不上;刷卡就让大家只能老老实实地等了。
    bintianbaihua
        68
    bintianbaihua   101 天前
    zhujq
        69
    zhujq   101 天前
    会看进来的妹子好不好看
    ReputationZh
        70
    ReputationZh   100 天前
    @SelFree 兄弟,怎么让电梯在等待时,有人按下上楼或者下楼键,前往按键楼层?没玩懂。
    SelFree
        71
    SelFree   100 天前
    @ReputationZh http://play.elevatorsaga.com/documentation.html#docs

    floor 有`up_button_pressed`、`down_button_pressed`事件
    hitaoguo
        72
    hitaoguo   100 天前
    我们这五部电梯,有三个停一楼,你在其中一个一楼的门口按上楼的按钮,然后另外两个一楼的电梯其中一个开了,就不开你按的这个。
    IvanLi127
        73
    IvanLi127   100 天前
    如果我有时间去想这个电梯的算法,那我一定不会去想它怎么实现的,因为它太差劲了,居然让我等了这么久。
    realpg
        74
    realpg   100 天前
    第一天就发现了电梯程序的不智能甚至想拆了自己写。
    jiangbingo
        75
    jiangbingo   99 天前
    曾从事电扶梯软硬件设计三年,电梯群控逻辑还是相当复杂的,特别是个性化和智能化需求越来越强烈的今天。PLC 早已经淘汰,开关量控制肯定做不到复杂的需求,更别说舒适性的乘坐体验,电梯控制主要有三大方面:逻辑控制,电机控制,安全控制。一条冷知识:不少电梯安装有称重系统,能感知到轿厢里是否有人以及多少。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4135 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 02:35 · PVG 10:35 · LAX 19:35 · JFK 22:35
    ♥ Do have faith in what you're doing.