📱 手机上看不到完整课程(数字人讲师需要电脑浏览器的 3D 支持)。下面是这节课的图文讲解 + 音频,内容完全一样,手机上也能完整学完。想体验完整课程,用电脑打开这一页即可。
仍然在手机上试试完整课程
一条线两端:主站和从站
0:31一条线两端:本机写出去,再读回来
- 数据本来只在自己身上不联机,一台 PLC 就是一个孤岛
- 每台设备有个局号线上挂几台设备,靠局号点名
- 我们这台是主站对面那台是从站,等它来问
- 写出去、读回来,才是通讯三格原样去、原样回,一格不差
本机三格写到 1 号局,再从 1 号局读回来
一台 PLC 自己跑程序,数据都在自己身上。要跟另一台设备打交道,就得多一条线。线上可以挂好几台设备,每台有个编号,叫局号。我们这台是主站,对面那台是从站。先看写:本机 D1 到 D3 三格,送到 1 号局的 K500 开始三格。再看读:从同一个地方读回来,三格原样回到 D20 到 D22。这一去一回,就是通讯。
四个位置:局号、首址、个数、串口
0:32四个位置各管什么:局号 / 首址 / 个数 / 串口
- 一条指令要交代四件事找谁、从哪起、要几格、走哪个口
- 改首址 → 值翻个个儿K500 读出一,K501 读出零
- 改局号 → 值也翻1 号局读出一,2 号局读出零
- 改个数 → 一次填几格个数写三,就连着填满三格
只动一个位置,读回来就变一处
一条通讯指令要交代四件事。找哪台设备,叫局号。从对面哪一个地址开始,叫远端首址。要几格,叫个数。走哪个口,叫串口。看这一屏:先读基准,1 号局的 K500 读出来是一。只改首址,把它换成 K501,读出来就翻成零。只改局号,把它换成 K2,也翻成零。只改个数,把它换成三,一口气填满三格。改一处,变一处,这就是四个位置各管什么。
把对面的线圈读回来当按钮
0:29远端线圈读回本机,再驱动输出
- 对面一排线圈,好比一排按钮读回来的就是对面的通断状态
- 一次搬四格个数写四,M100 到 M103 一起填满
- 搬回来直接当触点M100 驱动 Y0,M101 驱动 Y1
- 不亮不等于没读到对面那个线圈本来就是断的
读对面的四个线圈,回来直接带 Y0 / Y1
从站上有一排线圈,好比一排按钮。按住 X0,一条线圈读指令把 500 号开始四个线圈,一次搬到本机 M100 到 M103。搬回来就能当自己的触点用:M100 通,Y0 亮;M101 是断的,Y1 就不亮。要注意,Y1 不亮不是没读到,是对面那个线圈本来就是断的。读到什么就是什么,这正是通讯的意义。
读回来的是数值,不是开关
0:29寄存器读回的是数值,能直接参与运算
- 寄存器里装的是数值不是通断,是数
- 一格对一个数三格对应 D20 到 D22
- 数值能直接参与运算D20 加十,得到 766
- 线圈做不了加法读线圈只能当触点用
读回三个数,再拿第一个去加十
对面还有一种数据,不是通和断,而是数值,叫寄存器。按住 X0,寄存器读指令把 1 号局 K500 开始三格搬到本机 D20 到 D22,一格对一个数。搬回来的是纯数值,可以直接拿去算:再按住 X1,给 D20 加上十,得到 766。要是读的是线圈,就只能当触点用,做不了加法。要开关还是要素,看你读的是哪一种。
写出去:单个和多个
0:32写出去:单个 REGW 与多个 MRGW
- 写是把本机的送出去跟读正好反过来
- 单个写:一次送一格D1 的 1234 送到 K700
- 多个写:一次送一串D10 到 D12 送到 K800 开始三格
- 送完要读回来对一遍一格不差,才算真写成功
单个写一格,多个写一串,再读回来对一遍
读是把对面的东西搬到自己家,写正好反过来,把自己家的东西送到对面。先看单个写:按住 X0,把 D1 里的 1234 送到 1 号局 K700,一次送一格。再看多个写:按住 X1,D10 到 D12 的 111、222、333 送到 K800 开始三格,一次送一串。最后按住 X2 读回来对一遍,一格不差。个数写多少,对面就收多少格。
常开触发和边沿触发,差别很大
0:36常开触发「一直发」 vs 边沿触发「发一次」
- 两种触发方式,结果差很远常开每扫描发一次,边沿只发一次
- 常开这条:一直发M0 通着,M10 一变对面就跟着变
- 边沿这条:只发一次M11 再变,对面一动不动
- 通讯量大时该用边沿一直发会把线占满
常开(LD)与边沿(LDP)并列,看谁跟着变
最后一条最容易吃亏:通讯指令是常开触发,还是边沿触发。常开触发,只要条件通着,每个扫描周期都发一次;边沿触发,只在接通那一下发一次。看这一屏:先把 M10 置 1,M11 也置 1。按住 M0,常开这条发出去,对面跟着变。再抬一下 M1,边沿这条也发一次。把 M10 拉低,常开这条照发不误;把 M11 拉低,边沿这条一动不动,对面还是上次的值。通讯量大时,常开一直发会把线占满。