自动化网-工控人家园官网移动版

主页 > 工控品牌 > 西门子 >

西门子S7系列PLC常用数据的编程实例

当数据用规定的格式输入后,在西门子plc的内部存储器中均需要以二进制的形式存储,二进制格式与实际数据间的关系较复杂,它常常会给程序的调试与检查带来困难,为了更清楚地说明数据的使用方法与存储形式,举例如下。
  【例1】利用数据装载指令(指令代码L),将各种十进制、十六进制数据读入到累加器ACCU1。
    程序指令如下:
    ①L+27    ,/将单字长(16位)的十进制常数27读入到累加器l中;
    ②L1#一1  //将双字长(32位)的十进制常数一l读入到累加器l中:
    ③L2#1010 0000 0010 0001    //将单字长(16位)的二进制数1010 0000 0010 0001读入到累
    加器l中;
    ④LDW#16# AOFl_BCD4  //将双字长(32位)的十六进制常数AOFl BCD4读入到累加器l中;
    ⑤L-2.5    //将双字长(32位)的浮点数“-2.5”读入到累加器l中(有关浮点数c1勺存
    储格式见后述)。
  【例2】利用数据装载指令(指令代码L),将ASCII字符“END”读入到累加器1中,并确定其执行结果。
    程序指令如下:
    LfEND.  ∥将ASCII字符“END”读入到累加器l中
    对照表8-5.2“ASCII代码表”可知,E=45;N=4E  D=44,所以本字符在累加器1中的执行结果为:“454E44”。
    【例3】利用数据装载指令(指令代码L),将定时器时间值、计数器计数值读入到累加器1中,并确定其执行结果。
    程序指令如下:
    ①LT#500ms  ∥将定时器时间值(500ms)读入到累加器l中;
    ②LC#100    //将计数器计数值(100)读入到累加器l中;
    定时器时间值、计数器计数值以常数形式存储,因此,累加器l的执行结果分别为500与100。
    【例4】利用数据装载指令(指令代码L),将2字节(16位)的常数100、20分别读入到累加器1的高、低字节中,并确定其执行结果。
    程序指令如下:
    LB# (100,20)    //将2字节(16位)的常数读入到累加器l中;
    本指令与常数读入指令“L+27”的区别在于:
    L +27指令:执行指令是将常数27转换为二进制后存储于累加器1,因为27=(1B) 16,所以累加器l的执行结果为“00 1B”。常数值的范围为0~65535(即O—FFFF)。
    L B# (100,20)指令:执行指令是将2个十进制常数转换为二进制后,分别存储于存储器的高字节与低字节中,因为100=(64)16;20=(14) 16,所以累加器1的执行结果为“64 14”。指令中括号内的常数值的范围为0~255(即O~FF)。
    相关指令:
    LB# (100,20,12,15)    //将4字节(32位)的常数读入到累加器l中。
    【例5】利用数据装载指令(指令代码L),将4字节(32位)的地址数据10.2、M10.2分别读入到累加器1中,并确定其执行结果。
    程序指令如下:
    ①LP#10.2    /,将双字长(32位)的地址数据读入到累加器l中;    
    ②LP#M10.2    //将双字长(32位)的地址数据读入到累加器l中;
    注意:地址数据在S7中的存储格式如下:

    地址位(bit31):“0”指针寄存器不含地址符,地址符bit24~bit26应为0;“l”指针寄存器含地址符,地址符由bit24~bit26指定。
    地址符(bit24~bit26):地址位(bit31)为“1”时用于指定存储器地址,地址的编码如下:
    000:地址P:
    001:,地址I;
    010:地址Q;
    011:地址M;
    100:地址DBX;
    101:地址DIX;
    110:地址L:
    111:地址VL。
    因此,在累加器1中,指令“L P#10.2”的执行结果为“0000 0052”;指令“L P#10.2”的执行结果为“8300 0052”。
    【例6】利用数据装载指令(指令代码L),将日期数据2006-11-18读入到累加器1中,并确定其执行结果。
    程序指令如下:
    LD#2006_ll—l8    //将双字长(32位)的日期读入到累加器l中;
    注意:日期在PLC中的存储格式为表格数据,且以1990年1月1日作为起点“O”;以后每天增加1,1990年1月2日为“l”。因此,2006年11月18日对应累加器l的日期存储数据为:6165;而2007年11月18日对应累加器1的日期存储数据为:6165+365= 6530。
   【例7】利用数据装载指令(指令代码L),将时间数据13:20:33.125s读入到累加器1中,并确定其执行结果。
    程序指令如下:
    LTOD#13:20:33.125    ∥将双字长(32位)的对阅读入到累加器l中。
    注意:时间在PLC中的存储格式为以ms为单位的数据,如:
    13:20:33.125s =(13×3600 +20×60+ 33.125)s= 48033125 ms
    因此,执行本指令后累加器1的时间存储数据为:48033125。 (责任编辑:admin)