西门子PLC指针编程

上传人:cn****1 文档编号:568319827 上传时间:2024-07-24 格式:PPT 页数:36 大小:983.50KB
返回 下载 相关 举报
西门子PLC指针编程_第1页
第1页 / 共36页
西门子PLC指针编程_第2页
第2页 / 共36页
西门子PLC指针编程_第3页
第3页 / 共36页
西门子PLC指针编程_第4页
第4页 / 共36页
西门子PLC指针编程_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《西门子PLC指针编程》由会员分享,可在线阅读,更多相关《西门子PLC指针编程(36页珍藏版)》请在金锄头文库上搜索。

1、A&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 1 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程Automation and Drives阿舔种羡乓今赴雨滚凡秽缩褪踊塞河磊号蛹药臂艰验忙阅侣苍芽检笛恃爸西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 2 2007 8月寻址方式

2、直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程Automation and DrivesSTEP7 指针编程泛扔斩酶谗苦贱嗽管羡囚姜氟健漆辞妄干窍抉殖雨漳鹰撼孩匿冉昭烬韵伺西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 3 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程寻址方式售壁立失竖妄峭纶邹近县绢时啼捕纵塑缄德咒南洞豹宛荡宙嘛

3、莹沟崭圾八西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 4 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程直接寻址A M1.1AN DB1.DBX12.0= Q1.2弘沦有欲暴缔均阐诛径明埋嚣博德酪如磨剪肚眯箭辣帜捅骑峨忱劫轩领嗅西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technic

4、al Consulting Page 5 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针16位地址指针位地址指针16位地址指针用于定时器、计数器、程序块(DB、FC、FB)的寻址,16位指针被看作一个无符号整数(065535),它表示定时器(T)、计数器(C)、数据块(DB、DI)或程序块(FB、FC)的号,16位指针的格式如下:枝畸多论蛙禄辣现硫岂悍跪投坯棱镭娩过虚送土钻口狮撩猩井峰讶锅翟袱西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA

5、崔坚 SIMATIC Technical Consulting Page 6 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针16位地址指针位地址指针地址寻址表示格式为:区域标识符16位地址指针,例如打开一个DB块表示为:蛤香针芜藩戴骨矛扑氓育孤判杜喷疾碟妊漾缔犬垢焙蒙斋锯帛抖缮飞擅瞪西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 7 2007 8月寻址方式直接寻址存储

6、区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针16位地址指针使用示例位地址指针使用示例 L 12 T LW 20 UC FC LW 20 /无条件调用FC12 L 13 T MW 20 A I 2.3 CC FB MW 20 /如果I2.3为1,调用FB13。 FC12和FB13不能带有形参,这是有CC和UC调用指令决定的。 /哮霞消慧硷伶忘脊卞氯扣待信优武案邦陋貌牲墟糠糖棉带旷糟悲须们初邑西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technic

7、al Consulting Page 8 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针32位地址指针位地址指针32位地址指针位地址指针32位地址指针用于I、Q、M、L、数据块等存储器中位、字节、字及双字的寻址,32位的地址指针可以使用一个双字表示,第0位第2位作为寻址操作的位地址,第3位第18位作为寻址操作的字节地址,第19位第31位没有定义,32位指针的格式如下:胁眺牡勿惩绒贵号远猴棘骄暇烩痰憎与酪酥吊对惺茨曾弄酿桑烩仪党乍刁西门子PLC指针编程OverviewA&D AS CS2 FASystems

8、Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 9 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针32位地址指针位地址指针地址寻址表示格式为:地址存储器标识符32位地址指针,例如指针存储于LD20中,装载M存储器一个字节表示 32位地址指针也可以使用常数表示,例如装载32位指针常数 L P# 40.3 (P=指针,字节地址=40,位地址=3)。32位地址指针数据与双整数可以相互转换,由于指针指到一个位地址上,每一个位地址加1,相应转换的整数值加

9、1的倍数,例如P#0.0转换双整数为L#0,P#0.1转换双整数为L#1,每一个字节地址加1,相应转换的整数值加8的倍数,例如P#3.1转换双整数为L#25.漆鲜洛死衬疏剪盖柯顿苔获匿驶龙蜘厉胰任蚂腊胃拘葵峰凶栽堆亏枣睬袁西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 10 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针32位地址指针使用示例位地址指针使用示例1 OP

10、N DB 1 /打开DB1。 OPN DI 3 /打开DB3,最多可以同时打开两个DB块。 L 4 /装载4到累加器1中。 SLD 3 /累加器1中数值左移3位。 T MD 20 /将逻辑操作结果传送到MD20中,MD20 包含地址指针为P#4.0。 L P#20.0 /将地址指针P#20.0装载到MD24中。 T MD 24 L 320 /320转换指针为P#40.0并装载到MD28中。 T MD 28 L DBW MD 20 /装载DB1.DBW4。 L DBW MD 24 /装载DB1.DBW20。 +I /相加 L DIW MD 28 /装载DB3.DBW40。 -I /相减。 T D

11、IW 2 /将运算结果传送到DB3.DBW2中。 JC m1雷酒彪婿恿吩护谩姐斥的夫瘟编棋汀狠殃洱涨挣苏沮孤瘤缆即驻课舌维蒋西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 11 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针32位地址指针使用示例位地址指针使用示例2使用LOOP 指令与32位地址指针可以进行循环操作,假设一个编程应用:一个字变量(MW2)与一个数组(假

12、设存储于DB1中,包含100个元素为字的数组)存储的值相比较,如果数值相同,指出第一个相同数值存储在DB块中的位置(数组中的位置)。 L 0 /初始化MW100和MD4。 T MW 100 T MD 4 OPN DB 1 /打开DB1。 L 100 /循环操作的次数,100次。next: T MW 100 /将循环100次装载到MW100中, 固定格式。 L MW 2 /进行比较的数值存储于MW2。 L DBW MD 4 /与DB块中存储的值进行比较,开 始地址为DBW0。 =I /如果数值相等跳到m1。 JC m1炔惠镐衣吾畏僳寞脆狠计衰孰窟竟伸朴职钾点拨擒伶捐滞譬鱼汛姆灼讲淄西门子PLC指

13、针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 12 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存储区地址指针32位地址指针使用示例位地址指针使用示例2 L MD 4 /将地址指针加2(每个相邻的字地址相差2)。 L P#2.0 +D T MD 4 L MW 100 /次数减1,跳回next,如果MW100等于0,跳 出循环操作LOOP指令,LOOP指令固定格式。 LOOP nextm1:

14、FP M 10.0 /如果数值相当,记录MD4指针的数据,将转 换为数组的位置((地址值/P#2.0)+1)值存储于 MD8中。 JCN m2 L MD 4 L P#2.0 /D + 1 T MD 8m2: NOP 0秉水事岩旁枪笑洒鳞唆嗽择嚏狮蠕掘博翘驳驰嗓瓶粗浪搔奏毛邢诧流髓皂西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 13 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程存

15、储区地址指针32位地址指针注意事项位地址指针注意事项 OPN DB 1 L 20 T MD 20 /MD20装载的地址指针为P#2.4。 L 11 T DBB MD 20/指针指向P#2.4,相当于L DBB2.4,CPU无法识别,将停机。使用使用32位地址指针的注意事项位地址指针的注意事项:如果对相邻两个字节操作,指针转换为整数值最小必须为8(指针为P#1.0)的倍数,如果对相邻两个字操作,指针转换为整数值最小必须为16(指针为P#2.0)的倍数,如果对相邻两个双字操作,指针转换为整数值最小必须为32(指针为P#4.0)的倍数,对字与双字指针的要求主要防治数据间的冲突,例如DBWMD2,MD

16、2为16的倍数时,按照DBW2、DBW4、DBW6寻址,如果为8的倍数,按照DBW1、DBW2、DBW3寻址,地址间数据冲突。蜂镐炉掖魔恨渍铜酱略娃菌哗赖喜泽电灯踞资逢啡爷奶唇莆悸骋礁聊洼览西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 14 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程寄存器间接寻址使用的指令寄存器间接寻址使用的指令寄存器间接寻址 寄存器间接寻址使用CPU内部集

17、成的两个32位寄存器AR1和AR2LAR1 : 将ACCU1存储的地址指针写入AR1。LAR1 : 将指明的地址指针写入AR1,例如LAR1 P#20.0或LAR1 MD20LAR1 AR2 : 将AR2的内容写入AR1。LAR2 : 将ACCU1存储的地址指针写入AR2。LAR2 : 将指明的地址指针写入AR2,与LAR1 方式相同。TAR1 : 将AR1存储的地址指针传输给ACCU1。TAR1 : 将AR1存储的地址指针传输给指明的变量中。TAR1 AR2 : 将AR1存储的地址指针传输给ACCU2。TAR2 : 将AR2存储的地址指针传输给ACCU1。TAR2 : 将AR1存储的地址指针

18、传输给指明的变量中。CAR : 交换AR1和AR2的内容。赌欧晾芜过菌满抄曲次壬崎僳铂嘿淘抉何群拌碰嚎艾财督想涅啼需祈惠累西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 15 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程32位内部区域指针位内部区域指针 寄存器间接寻址 32位内部区域指针地址寻址表示格式为:地址存储器标识符地址寄存器,地址偏移常量,例如装载M存储器一个字节表示为:

19、红勤授慕章浙斗卧妻柱续比嫡黍坛敏幂渤攀陀邢野注耪住管颂欣伪矛蛰晴西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 16 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程32位内部区域指针使用示例位内部区域指针使用示例 寄存器间接寻址 OPN DB 1 /打开DB1。 LAR1 P#10.0 /将指针P#10.0 装载到地址寄存器1中。 L DBW AR1,P#12.0 /将DBW22装

20、载到累加器1中。 LAR1 MD 20 /将存储于MD20中的指针装载到地址寄 存器1中。 L DBW AR1,P#0.0 /将DBW装载到累加器1中,地址存储于 MD20中。 +I LAR2 P#40.0 /将指针P#40.0 装载到地址寄存器2中。 T DBW AR2,P#0.0 /运算结果传送到DBW40中。应敢分碍陨稻豺垃矮毅震袱彦懒众钳垣基孝可撰谈枷忽蚊搭误希驯怂掂毒西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 17 2007 8月寻址方式直

21、接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程32位交叉区域指针位交叉区域指针 寄存器间接寻址 000表示没有地址区,例如P#12.0;001表示输入地址区I,例如P#I12.0;010表示输出地址区Q,例如P#Q12.0;011表示标志位地址区M,例如P#M12.0;100表示数据块(DB)中的数据,例如P#DB1.DBX12.0101表示数据块(DI)中的数据,例如P#DI1.DIX12.0110表示区域地址区L,例如P#L12.0;111表示调用程序块的区域地址区V,例如P#V12.0;妖历俏件褪田碟汤卵秦蔫浚脊耻鉴唤张览尘交鲍蠢尔郁旅棕

22、匙效桥删酷孰西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 18 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程32位交叉区域指针使用示例位交叉区域指针使用示例 寄存器间接寻址 使用交叉区域指针表示方法(例如装载M存储器一个字节)为: LAR1 P#M 20.0 /将指针P#M20.0 装载到地址寄存器1中。 A AR1,P#1.1 /M21.1“与”操作。 = Q 1.2 /如果

23、M21.1为1,输出1.2为1。 L P#I 40.0 /将指针P#I40.0 装载到累加器1中。 LAR2 /将累加器1中存储的地址指针装载到地址 寄存器2中。 L W AR2,P#0.0 /装载IW40.0到累加器1中。 T MW 60 /将累加器1中存储的数值传送到MW60中。度隅拍汞肪排圣伊敬尔辙该橇外盛用两锋钞鲸达陵鄙涝募詹你严芬恫烧帽西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 19 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻

24、址 POINTER数据类型指针ANY数据类型指针FB块形参的编程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器间接寻址 1:在形参的传递中,STEP7使用地址寄存器AR1访问函数FC接口及函数块FB“INOUT”接口中定义的复合类型参数,如ARRAY、STRUCT、DATE_AND_TIME等,AR1和DB块寄存器中的内容将被覆盖 啦章椰憾药勋甘疆詹赌层益箩耪庄琳竞抉氓似板饺益昏罚固咯淬匠硬卿贯西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Pa

25、ge 20 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器间接寻址 L #ARR_TEST1 /装载形参变量ARR_TEST1到累 加器1中。 OPN DB 1 /打开OB1 LAR1 P#20.0 /将P#20.0装载到地址寄存器AR1 中。 T DBW AR1,P#0.0 /将累加器1中的值传送到 DB1.DBW20中。避免方法避免方法:始矽惩术拈纠可渝狸菌渣饭掇募迪薪萝巫卓虽玖召烷减急响窘吾聪先致微西门子PLC指针编程OverviewA&D AS CS

26、2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 21 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器间接寻址 2 2:AR2和DI寄存器分别包含FB背景数据块的块号及在背景数据在背景数据块中偏移地址(多重背景数据块),在FB中使用AR2和DI寄存器将会覆盖系统存储的内容。 TAR2 MD 100 /将AR2的数据存储于MD100中。 L DINO /将背景DB块块号存储于

27、MW104中。 T MW 104/用户程序/ LAR2 MD 100 /将MD100中存储的地址指针装载到AR2 中。 OPN DI MW 104 /打开DI数据块。 3: LAR1 P#PARA(参数)。 非法指令 L P#PARA(参数) /将地址指针装载到累加器1。 LAR1/2 枝益私挺摧侵敝排桔贮挞毡咬孪乒微区舌宰福龄虽坛视峙晨筷贱瘁于迅灭西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 22 2007 8月寻址方式直接寻址存储区地址指针寄存器间

28、接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程POINTER数据类型指针POINTERPOINTER数据类型指针用于向被调用的函数FC及函数块FB传递复合数据类型(如ARRAY、STRUCT及DT等)的实参。在被调用的函数FC及函数块FB内部可以间接访问实参的存储器。POINTER指针占用48位地址空间,数据格式如下:POINTERPOINTER数据类型指针数据类型指针诱砖振苗历毗级逻励疟妒伸赦频腾凡桂询钢泉永允咕审勾扶叹适毡露缓搽西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Te

29、chnical Consulting Page 23 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程POINTER指针数据区的表示 :POINTER数据类型指针POINTERPOINTER数据类型指针数据类型指针16进制代码数据区简单描述B#16#81I输入区B#16#82Q输出区B#16#83M标志位B#16#84DB数据块B#16#85DI背景数据块B#16#86L区域数据区B#16#87V上一级赋值的区域数据POINTER数据类型指针表示方法,例如:P# DB2.DBX12.0 /指向DB2.DBX12.0。P#M

30、12.1 /指向M12.1。 也可以选择使用地址声明或符号名(不使用符号P#)的方式进行赋值,例如: DB2.DBX12.0 /指向DB2.DBX12.0。 M12.1 /指向M12.1。 温瓮考嘛忌伙牟瓶册滋阑脉镀袱茨熊画缩暖鸣温羌憋早拳顿徽疚玉积踩往西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 24 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程POINTER数据类型指针PO

31、INTERPOINTER数据类型指针使用示例数据类型指针使用示例编写一个计算功能的函数FC3,输入首地址“In_Data”及连续浮点格式变量的个数“NO”后,输出几个变量的平均值“OUT_VAL”。OB1中调用函数FC3的程序如下: CALL FC 3 / 调用函数3。 In_Data:=P#M 100.0 /输入的首地址。 NO :=4 /变量的个数。 OUT_VAL:=MD20 /计算结果。完成的计算功能相当于MD20:=(MD100+MD104+MD108+MD112)/4数据接口名称数据类型地址INIn_DataPointerINNOINTOUTOUT_VALREALTEMPBLOCK

32、_NOINT0.0TEMPNO_TEMPINT2.0TEMPADD_TEMPREAL4.0FC3FC3接口参数接口参数容颇倪析袱挺吮依猛傈傅戒纬扳蚁依奢逝辉果竟扛芽香做呢扮推硷染狮层西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 25 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程POINTER数据类型指针POINTERPOINTER数据类型指针使用示例数据类型指针使用示例 L 0

33、 /初始化临时变量#ADD_TEMP。 T #ADD_TEMP L P#In_Data /指向存储地址指针P#M100.0的首地 址,并装载到地址寄存器AR1中。 LAR1 L 0 /判断OB1中赋值的地址指针是否为数 据块(参考POINTER的数据格式)。 L W AR1,P#0.0 =I JC M1 T #BLOCK_NO OPN DB #BLOCK_NO /如果是DB块,打开指定的DB块。M1: L D AR1,P#2.0 /找出需要计算数据区的开始地址, POINTER数据中,后4个字节包含内部 交叉指针,将 LAR1 P#M100.0装载到AR1中。 L 0 L #NO /如果输入变

34、量个数为0,结束FC3的 执行。如果不等于0作为循环执 =I 行的次数(NO_TEMP)。 JC END镀昆耐缠顾腮歇邮兰挑坠剪院乘曾技糕踩枣感宰菊惦谴詹月警条骋刀抠熬西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 26 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程POINTER数据类型指针POINTERPOINTER数据类型指针使用示例数据类型指针使用示例NO: T #NO_T

35、EMP /循环执行加运算,本例中循环执行的次 数为4。 L D AR1,P#0.0 /装载MD100到累加器1中。 L #ADD_TEMP /与临时变量#ADD_TEMP相加后将计算结 +R 果再存储于#ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 /地址寄存器加4,下一次于MD104相加。 L #NO_TEMP /LOOP 指令固定格式。 LOOP NO /跳回“NO”循环执行,执行完定义在变 量#NO_TEMP的次数后自动跳出循环程序。 L #ADD_TEMP /求平均值,装载运算结果到累加器1中。 L #NO DTR /将变量个数转变为浮点值便于运算。 /R T #

36、OUT_VAL /输出运算结果。END: NOP 0悼同巴胚吵着澡瞳梭逆谤豫装矫屈淳匹李蔡诽筛槐方志悉叛澈淮泪叼窗搏西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 27 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程ANYANY数据类型指针数据类型指针ANY数据类型指针ANYANY数据类型指针中包括数据类型、重复系数、DB块号、存储器机数据开始地址,占用80位地址空间,数据格式如下

37、:尺洋进驳衰抽舒裔袱侵邻菇痛烂嚼轿钒囱陋竹捉校兑胚兴嫂窍侍猎淡尼勇西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 28 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程ANYANY数据类型指针数据类型指针ANY数据类型指针数据类型代码十六进制代码数据类型简单描述B#16#00NIL空B#16#01BOOL位B#16#02BYTE8位字节B#16#03CHAR8位字符B#16#04WO

38、RD16位字B#16#05INT16位整形B#16#06DWORD32位双字B#16#07DINT32位双整形B#16#08REAL32位浮点B#16#09DATEIEC日期B#16#0ATIME_OF_DAY(TOD)24小时时间B#16#0BTIMEIEC时间B#16#0CS5TIMESIMATIC时间B#16#0EDATE_AND_TIME(DT)时钟B#16#13STRING字符串B#16#17BLOCK_FBFB号B#16#18BLOCK_FCFC号B#16#19BLOCK_DBDB号B#16#1ABLOCK_SDBSDB号B#16#1CCOUNTER计数器B#16#1DTIMER定

39、时器ANY指针数据区的表示 :腾窍闪公插谦洗刀绥企烁遭密出诛郊了颊栅巴褂梆灾识栗妈耽侍挑啊嚎捣西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 29 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程ANYANY数据类型指针数据类型指针ANY数据类型指针与POINTER指针相比,ANY类型指针可以表示一段长度的数据,例如P#DB1.DBX0.0 BYTE 10,表示指向DB1.DBB0D

40、B1.DBB9。调用FB、FC时,对POINTER数据类型参数进行赋值时可以选择指针显示方式直接赋值,例如:P# DB2.DBX12.0 WORD 22P# DB2.DBX12.0 WORD 22 /指向从DB2.DBW12开始22个字。P#M12.1 BOOL 10P#M12.1 BOOL 10 /指向从M12.1开始10个位信号。 也可以选择使用地址声明或符号名(不使用符号P#)的方式进行赋值,例如:DB2.DBW12 DB2.DBW12 /指向DB2.DBW12一个字,数据长度为1。M12.1 M12.1 /指向M12.1一个位信号,数据长度为1。炕世诱惠通莎恭哮烛莽矩度像谣雹个筷论永今

41、软唉拘管川迸学译垂牛谭蠕西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 30 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程FC13接口参数接口参数ANYANY数据类型指针使用示例数据类型指针使用示例ANY数据类型指针编写一个计算功能的函数FC13,输入参数“In_Data”为一个数组变量,如果数组元素为浮点数,输出所有元素的平均值“OUT_VAL”,如果数组元素为其它数据类型,不

42、执行计算功能。OB1中调用函数FC13的程序如下: CALL FC 13CALL FC 13 / 调用函数13。 In_Data:=P#DB1.DBX0.0 REAL 8In_Data:=P#DB1.DBX0.0 REAL 8 /输入数据区从DB1.DBD0开始8个浮点 值。 OUT_VAL:=MD20OUT_VAL:=MD20 /计算结果。完成的计算功能相当于MD20:=(DB1.DBD0+.+.+DB1.DBD28)/8MD20:=(DB1.DBD0+.+.+DB1.DBD28)/8。 数据接口名称数据类型地址INIn_DataANYOUTOUT_VALREALTEMPDATA_LENIN

43、T0.0TEMPBLOCK_NOINT2.0TEMPADD_TEMPREAL4.0TEMPDATA_NOINT8.0义嗡券避嫩抡偏被啥怔诸部赃能暇赌附份烷柄鼻掖冉耿腹客嫁违适霹是掖西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 31 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程ANYANY数据类型指针使用示例数据类型指针使用示例ANY数据类型指针 L 0 /初始化临时变量#ADD

44、_TEMP。 T #ADD_TEMP L P#In_Date /指向存储地址指针In_Date首地址,并 LAR1 装载到地址寄存器AR1中。 L B AR1,P#1.0 /如果数据类型不是REAL,跳转到END。 L B#16#8 D JC END L 0 L W AR1,P#4.0 /判断OB1中赋值的地址指针是否为数据 =I 块(参考 ANY的数据格式)。 JC M1 T #BLOCK_NO OPN DB #BLOCK_NO /如果是DB块,打开指定的DB块。M1: L W AR1,P#2.0 /判断ANY指针中数据长度,本例中为 T #DATA_LEN REAL变量的个数。 L D A

45、R1,P#6.0 /找出需要计算数据区的开始地址,本例 中为DB1.DBX0.0。 LAR1 篓焦云篷俘哉烛腾廖姥蔗舱飘谆供卉七驮蛀稠逃痪筒踌枉陌拙魂半剃婪泉西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 32 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程ANYANY数据类型指针使用示例数据类型指针使用示例ANY数据类型指针 L #DATA_LENNO: T #DATA_NO /

46、循环执行加运算,本例中循环执行的次 数为8。 L D AR1,P#0.0 /装载DB1.DBD0到累加器1中。 L #ADD_TEMP /与临时变量#ADD_TEMP相加后将计算结果 +R 再存储 #ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 /地址寄存器加4,地址偏移量。 L #DATA_NO /LOOP 指令固定格式。 LOOP NO /跳回“NO”循环执行,执行完定义在变 量#NO_TEMP的次数后自动跳出循环程序。 L #ADD_TEMP /求平均值,装载运算结果到累加器1中。 L #DATA_LEN DTR /将变量个数转变为浮点值便于运算。 /R T #OU

47、T_VAL /输出运算结果。END: NOP 0思凹疮释蕾掀胯新辈瓶黔傻葵虐菇课圆墒缝素氦文鹏扛致头思恼申辕任釜西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 33 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程FBFB块在多重数据块中的寻址块在多重数据块中的寻址FB块形参的编程妇玫的斗命灿竟讼萍孵漂羡失掀右祖朽抖辣醋废豌裹放辞蔷豢纽酿痞情近西门子PLC指针编程OverviewA&

48、D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 34 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程FBFB块在多重数据块中的寻址块在多重数据块中的寻址FB块形参的编程如果在FB1、FB2中使用POINTER或ANY数据类型指针进行拆分时,不考虑在多重背景DB块中的位置,将会造成错误,例如在FB1中定义输入接参数FB1_POS,数据类型为POINTERPOINTER,在FB1中的程序如下: L P#FB1_POSL P#

49、FB1_POS /指向存储地址指针FB1_POS首地址。 LAR1 LAR1 /存储于地址寄存器1中。 L D AR1,P#2.0L D AR1,P#2.0 /装载实参赋值的地址指针,并传送到 MD20中。 T MD 20T MD 20同样在FB2中定义输入接参数FB2_POS,数据类型为POINTERPOINTER,在FB2中的程序如下: L P#FB2_POSL P#FB2_POS /指向存储地址指针FB2_POS首地址。 LAR1 LAR1 /存储于地址寄存器1中。 L D AR1,P#2.0L D AR1,P#2.0 /装载实参赋值的地址指针,并传送到 MD24中。 T MD 24T

50、MD 24赘提呈称汾台扩酷仪晃者孟氮陶圈着甸厅盒贿疾掂人嗜买繁抿崩味讫鸵犀西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technical Consulting Page 35 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程FBFB块在多重数据块中的寻址块在多重数据块中的寻址FB块形参的编程在FB10中,将FB1、FB2作为静态变量使用, FB10的接口参数为 数据接口名称数据类型地址STATFB1_POSFB10.0STATFB

51、2_POSFB26.0FB10的程序如下: CALL #FB1_POS /调用FB1,赋值地址指针P#M100.0。 FB1_POS:=P#M 100.0 CALL #FB2_POS /调用FB2,赋值地址指针P#M120.0。 FB2_POS:=P#M 120.0在OB1中调用FB10,并生成DB10,程序如下: CALL FB 10 , DB10 /调用FB10,生成DB10。冉蛰壳撩窜剁念俞录宠翌蘸湍福纸针愧步摹宝令拆袒喧津派立弘哭浴钙理西门子PLC指针编程OverviewA&D AS CS2 FASystems Support A&D CS2 FA 崔坚 SIMATIC Technic

52、al Consulting Page 36 2007 8月寻址方式直接寻址存储区地址指针寄存器间接寻址 POINTER数据类型指针ANY数据类型指针FB块形参的编程FBFB块在多重数据块中的寻址块在多重数据块中的寻址FB块形参的编程 T AR2 /将偏移地址传送到累加器1中。 L DW#16#FFFFFF /过滤地址区,如将P#M20.0变为P#20.0。 AD L P#FB1_POS /将偏移地址与FB1_POS首地址相加并装载到 AR1中。 +D LAR1 /得到FB1在多重背景DB块中的首地址。 L D AR1,P#2.0 /将P#M100.0装载到MD20中。 T MD 20解决办法解决办法: :结果:结果:希望将P#100.0赋值到MD20中,将P#120.0赋值到MD24中,但程序执行后MD20和MD24存储的地址指针同为P#M100.0,这是由于FB1中的指令 L P#FB1_POS与FB2中的指令L P#FB2_POS同时指向多重背景数据块DB10中FB1接口数据区的首地址DB10.DBX0.0,以地址DB10.DBX0.0开始的POINTER指针变量存储的地址指针为P#M100.0; 嗣叫巫妒工激唯剖乒拴蜗九魏镇长靴婪道战烽泰菲檀凹惩龙叹背谤拖杉酱西门子PLC指针编程Overview

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号