武汉S7-1200PLC西门子代理商原装现货 武汉S7-1200PLC,西门子S7-1200plc,西门子PLC代理
当数据用规定的格式输入后,在PLC的内部存储器中均需要以二进制的形式存储,二进制格式与实际数据间的关系较复杂,它常常会给程序的调试与检查带来困难,为了更清楚地说明数据的使用方法与存储形式,现举例如下。
【例3-12】 利用数据装载指令(指令代码L),将各种十进制、十六进制数据读入到累加器ACCU1。其程序指令如下:
①L 27 //将单字长(16位)的十进制常数27读入到累加器1中;
②L L#-1 //将双字长(32位)的十进制常数-1读入到累加器1中;
③L 2#1010 0000 0010 0001 //将单字长(16位)的二进制数1010 000000100001读入到累加器1中;
④L DW # 16 # AOF1_BCD4 //将双字长(32位)的十六进制常数读入到累加器1中;
⑤L -2.5 //将双字长(32位)的浮点数"-2.5"读入到累加器1中(有关浮点数的存储格式见后述)。
【例3-13】利用数据装载指令(指令代码L),将ASCII字符"END"读入到累加器1中,并确定其执行结果。其程序指令如下:
L 'END' //将ASCII字符"END"读入到累加器1中;
对照表3-5“ASCII代码表”可知,E=45;N=4E;D=44,本字符在累加器1中的执行结果为“454E44”。
【例3-14】利用数据装载指令(指令代码L),将定时器时间值、计数器计数值读入到累加器1中,并确定其执行结果。其程序指令如下:
①L T#500ms //将定时器时间值(500ms)读入到累加器1中;
②L C#100 //将计数器计数值(100)读入到累加器1中;
定时器时间值、计数器计数值均以常数形式存储,累加器1的执行结果分别为500与100。
【例3-15】利用数据装载指令(指令代码L),将2字节(16位)的常数100、20分别读入到累加器1的高、低字节中,并确定其执行结果。其程序指令如下:
L B#(100,20) //将2字节(16位)的常数读入到累加器1中;本指令与常数读入指令“L27”的区别如下。
L27指令:执行指令是将常数27转换为二进制后存储于累加器1,因为27=(1B)s,累加器1的执行结果为“001B”。常数值的范围为0~65535(即0~FFF)。
LB#(100,20)指令:执行指令是将2个十进制常数转换为二进制后,分别存储于存储器的高字节与低字节中,因为100=(64)16,20=(14)16,累加器1的执行结果为"6414"。指令中括号内的常数值的范围为0~255(即0~FF)。其相关指令:
①L P#10.2 //将双字长(32位)的地址数据读入到累加器1中;
②L P#M10.2 //将双字长(32位)的地址数据读入到累加器1中;
注意:地址数据在S7中的存储格式见图3-21及其说明。
在累加器1中,指令"L P#10.2"的执行结果为"0000 0052";指令"L P=M10.2"的执行结果为"83000052"。
【例3-16】 利用数据装载指令(指令代码L),将日期数据2006-11-18读入到累加器1中,并确定其执行结果。其程序指令如下:
L D#2006_11_18 //将双字长(32位)的日期读入到累加器1中;
注意:日期在PLC中的存储格式为表格数据,且以1990年1月1日作为起点"0";以后每天增加1,1990年1月2日为"1"。2006年11月18日对应累加器1的日期存储数据为6165;而2007年11月18日对应累加器1的日期存储数据为6165365=6530。【例3-17】利用数据装载指令(指令代码L),将时间数据13:20:33.125读入到累加器1中,确定其执行结果。其程序指令如下:
L TOD#13:20:33.125 //将双字长(32位)的时间读入到累加器1中。注意:时间在PLC中的存储格式为以ms为单位的数据,如:13:20:33.125=(13×360020×60 33.125)s=48033125ms 执行本指令后累加器1的时间存储数据为:48033125。