用通用指令录入数据,是以数位(digit,占4个bit)为单位,逐个数位键入。每个数位(对十进制数为0~9数字符号,对十六进制数为0~F数字符号)用一个输入点。每键入1个数位时,原有各数位左(向高位)移,新键入数位处最右(最低)位。图6-15示的为4种PLC的有关程序。
图6-18a为欧姆龙PLC程序。它用数位(digit)移位(SLD)及数位传送(MOVD)指令实现。该图只画出“键0”及“键1“的情况。当任一键按下(对应的输入点ON),先是,使DM0、DM1(可看成双字长的数,即8位数)中的各数位的数丛低到高移位。然后,把此键值,如“键0”“键1”“键2”……的相应数字符号送入最低位。注意,这里的指令为微分执行是必要的。
图6-18b为西门子PLC程序。它用双字左移位(SHL-DW)及字节逻辑或(WOR-B)指令实现。该图只画出“键0”及“键1”的情况。当任一键按下(对应的输入点ON),先是使VD0的内容左移4位,即:VB0的低4位移给VB0高4位,VB0高4位丢失;VB1的高4位移给VB0低4位,VB1的低4位移给VB1高4位;VB2的高4位移给VB1低4位,VB2的低4位移给VB2高4位;VB3的高4位移给VB2低4位,VB3的低4位移给VB3高4位,VB3低4位被0填充。然后把此键值(如“键0”“键1”“键2”……)的相应数字符号与VB3作逻辑或运算,把与“键0”等对应的值将送入最低位(VB3的低4位)。注意,这里在指令执行前,先对执行条件进行微分处理是必要的,因为西门子PLC没有微分执行一说,故只好先作此处理。
图6-18 键入数位1
图6-19 左移(SFTL)指令
图6-18c为三菱PLC程序。它主要用位左移(SFTL)指令实现。其格式如图6-19所示。
执行这个指令,把这里D指定的M0开始的,n1指定的位数16(K16)位,左移由n2指定4(K4)位。同时,在移位后,还把S指定X000开始的4(n2指定的K4)个位送入D的被移出位。图6-18c只画出“键0”及“键1”的情况,如“键1”ON,则把常数1传送给K4M0,然后微分执行“SFTL”指令。它把M100~M131的各位依次左移4位,同时,把K4M0的低4位传送给M100~M131的低4位。接着,执行DMOV指令,再把K32M100的内容传送给D0、D1,从而实现了录入数位1的目的。
图6-18d所示的为和利时LM机有关程序。图中节1、2及4、5为生成脉冲信号。节3、6为数字输入。当“0键”“1键”按下,即与其对应的输入点“J0”“J1”ON时,对应的“pJ0”“pJ1”将ON1个扫描周期。进而,使被输入字“ww”的内容,先向左移4个位(左移1个数位),接着再与“0”或“1”进行“或”逻辑运算,运算的结果又存入“ww”字。显然,每次做这样操作,都将使“ww”原有数的高数位移出,同时把“0”或“1”补充在它的低数位。起到了输入录入这个“0”“1”数据的作用。
只是这里程序仅列出按“键(J)0”“键(J)1”。其实,还可加上“键(J)2”“键(J)3”等按键。这样,也就可以录入像“2”“3”等这样的数据了。本程序可以实现双字、8数位的录入。自然,要录入8位完整的数据,必须键入8次。当然,如高位为0,在录入前,把有关数据区清零,可以减少键入次数。
图6-20所示为是用编码指令向目标地址(目标低字到目标高字间)录入数据的3种PLC的梯形图程序。
(www.xing528.com)
图6-20 键入数位2
图6-20a为欧姆龙PLC程序。如图所示,当任一键(这里只定义10个键0~9,对应输入点输入通道的第0~第9位,也可增多)按下,则200通道大于0,这将使目标低字到目标高字移位,然后,把此键的值(见DMPX指令的含义),如“0”“1”“2”、…送入最低位。注意,这里的指令也应为微分执行。
图6-20b为西门子PLC程序,当任一键(这里只定义10个键0~9,对应输入点输入通道的第0~第9位,也可增多)按下,则VW10大于0,这将使目标双字VD0移位(4个bit),然后,把此键的值(见DMPX指令的含义),如“0”“1”“2”…送入VB3,即VD0的最低位。注意,这里的指令也应为微分执行,为此,用了指令P。
图6-20c为三菱PLC程序。如图所示,当任一键(这里只定义10个键0~9,对应输入点输入通道的第0~第9位,也可增多)按下,则D1=1,这将此键对应的值传送给K4M0,然后微分执行“SFTL”指令。它把M100~M131的各位依次左移4位,同时,把K4M0的低4位传送给M100~M131的低4位。接着,执行DMOV指令,再把K32M100的内容传送给目标字,从而实现了录入数位1的目的。注意,这里的指令也应为微分执行。
图6-21所示为3种PLC目标地址可选的录入程序。它的目标地址不是固定的,可按需要选择。所以,它的算法是先选定(录入)目标地址,确定后,再向选定的目标地址录入数据。
图6-21a为欧姆龙PLC程序。该图用的指令与图6-20相同。只是先选定目标地址(对指针赋值),后录入数据(向指针指向地址送数)。具体过程是,先使“选目标地址”ON,“指针”清0。开始录入数据,但这时录入的为目标地址,即向指针赋值。地址送入后,再使“录入数据”ON(这时,“选目标地址”应已OFF),则201.00OFF,201.01ON。这时,录入数据将送“暂存器”。最后,使“确认录入”ON(其它的均已OFF),则使201.01OFF,停止录入,同时把“暂存器”的内容送指针指向的地址。
图6-21 目标地址可选的录入
图6-21b为西门子PLC程序。该图用的指令与图6-16相同。只是先选定目标地址(对VD2044赋值),后录入数据(向指针指向地址送数)。具体过程是,先使“选目标地址”ON,M5.0ON,使VB0的绝对地址送给“基准地址”。开始录入数据,但这时录入的为目标地址,即向VD2044赋值。地址送入后,再使“录入数据”ON,M5.1ON(这时,“选目标地址”应已OFF)。这时,录入数据将送MW0。最后,使“确认录入”ON(其它的均已OFF),则使M5.1OFF,停止录入。同时,计算VD2044指向的目标地址,再把MW0的值送VD2044指向的地址。
图6-21c为三菱PLC程序。该图用的指令与图6-20相同。也只是先选定目标地址(对指针赋值),后录入数据(向指针指向地址送数)。具体过程是,先使“选目标地址”ON,M50ON,变址器V0及K4M100清0。开始录入数据,但这时录入的为目标地址,即向变址器V0赋值。地址送入后,再使“录入数据”ON,M51ON(这时,“选目标地址”应已OFF),这时,录入数据将存于K4M100。最后,使“确认录入”ON(其它的均已OFF),则使M51OFF,停止录入。同时,把K4M100的内容送D0V0的,即变址器指向的D区地址。
用普通指令录入,大多数PLC都可实现。但它使用的输入点多,PLC的硬件资源将得不到有效利用。当然,也可作切换选择,加上硬件接线时,在公用点上做适当隔离,也可做到输入点多用,以充分利用PLC的硬件资源。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。