6ES7505-0KA00-0AB0
SIMATIC S7-1500, 系统电源 PS 25W 24V DC,为 S7-1500 的背板总线 提供工作电压
浔之漫智控技术(上海)有限公司是SIEMENS西门子全球一级总代理商与全球维修中心,优势产品有西门子S7200/300/400/1200/6DD/6EP/6AV/6GK/ET200/电缆/DP接头/PLC/触摸屏 /变频器/数控伺服/直流/电源/软启动/ 网卡 等等,西门子工业自动化与驱动技术集团授权合作伙伴!《销售态度》:****、诚信服务、及时到位!
《销售宗旨》:为客户创造价值是我们永远追求的目标!
《服务说明》:现货配送至全国各地含税(13%)含运费!
《产品质量》:原装**,全新原装!
《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!
S7-200的子程序编写与调试指令S7-200CPU的控制程序由主程序、子程序和中断程序组成。STEP 7-Mico/WIN32在程序编辑器窗口里为每个POU(程序组织单元)提供一个独立的页,主程序总是第1页,后面是子程序或中断程序。
因为各个程序在编辑都窗口里被分开,编译时在程序结束的地方自动加人无条件结束指令END、MEND.RET或RETI,如果在程序里加了这些指令,编译时反而会出错。
1.子程序的作用
子程序常用于需要主次反分执行相同任务的地方,只需要写次子程序,别的称序在占要子程序的时候调用它,而无需重写该程序:子在序的词用是有条件的,未调用它时不会执行了的程序中的指令,因此使用子程序可以减少扫描时间。
使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护。如果子程序中只引用参数和局部变量,可以将子程序移植到其他项目。为了移植了程序,应避免使用全局符号和变量,如I、Q、M、SM、AI、AQ、V、T、C、S、AC等存储器中的**地址。
2.子程序的创建
可采用下列方法创建子程序:在“编辑”菜单中选择“插人→子程序”;在程序编辑器视窗中按鼠标右键,从弹出菜单中选择“插人→子程序",程序编辑器将从原来的POU显示进人新的子程序,程序编辑器底部将出现标志新的子程序的新标签,在程序编辑器窗口中可以对新的子程序编程。可以使用该子程序的局部变量表定义参散,各子程序*多可以定义16个IN、OUT参数。用石键双击指令树中的于程序或中断程序的图标,在弹出的窗口中选择“重新命名”,可修改它们的名称。
假设创建了一个名为CULCU的子程序,首先在该子程序的局部变量表中,定义一个名为输人"的双字IN(输人)变量、一个名为“输出”的双字0UT(输出)变量和一个名为TMP1的双字TEMP(临时)变量(见图6-5)。在图6-6的子程序中,输人变量被图6-5局部变业表乘以12 000,再除以13 257,运算结果作为子程序的输出。
图6-5局部变量表
3.子程序的调用
可以在主程序、另一子程序或中断程序中调用子程序,但是不能在子程序中调用自己(即不允许递归调用)。调用子程序时将执行子程序的全部指令,肖至子程序结束,然后返回调用程序中子程序调用指令的下一条指令之处。
创建子程序后,STEP 7-Micro/WIN32在指令树*下面的“子程序”图标下自动生成刚创建的子程序CULCU对应的图标。对于梯形阁程序,在子程序局部变量表中为该子程序定义参数后,将生成客户化调用指令块(见图6-6),指令块中自动包含了子程序的输人参数和输出参数。
图6-6子程序与主程序
在梯形图程序中插人子程序调用指令时,首先打开程序编辑器视窗中需要调用子程序,找到需要调用子程序的地方。在指令树的*下面用左键打开子程序文件夹,将需要子程序图标从指令树拖到程序编辑器中的正确位置。或将光标置于程序编辑器视窗双击指令树中的调用指令。
应为子程序调用指令的各参数指定有效的操作数,有效操作数为存储器地址、常量、全局符号和调用指令所在的P0U中的局部变量(不是被调用子程序中的局部变量)。
如果在使用子程序调用指令后修改该子程序中的局部变量表,调用指令将变为无效。必须删除无效调用,并用能反映正确参数的新的调用指令代替。
在语句表程序中调用子程序时使用调用指令“SBR n"。在调用子程序时,CPU保存整个逻辑堆栈后,将栈顶值置为1,堆栈中的其他值清0,控制转移至被调用的子程序。子程序执行完成时,用调用时保存的数据恢复堆栈,控制返回调用程序。子程序和调用程序共用累加器,不会因使用子程序自动保存或恢复累加器。
4.调用带参数的子程序
调用带参数的子程序时需要设置调用的参数,参数在子程序的局部变量表中定义,*多可传递16个参数。
1N(输人)是传人子程序的输人参数,如果参数是直接寻址,如VB10.指定地址的值被传、)人子程序。如果参数是间接寻址,如*AC1,指针指定地址的值被传人子程序。如果参数是常数(例如DW#12345)或地址(如 &VB100),它们的值被传人子程序,“非”为常数描述符。
0UT(输出)是子程序的执行结果,它被返回给调用它的POU常数和地址(如 & VB100)不能作抢出量。
IN_OUT(输人/输出)将参数的初始值传给子程序,子程序的执行结果返回给同一地址。常数和地址不能作输人/输出参数。
在子程序中可以使用参数IN、IN_OUT和OUT。
TEMP是局部存储变量,不能用来传递参数,它们只能在子程序中使用。
子程序传递的参数放在子程序的局部变量表中,局部变量表*左边的一则是每个被传递的参数的局部存储器地址。调用子程序时,输人参数被拷贝到子程序的局部存储器,子程序执行完后,从局部存储器区拷贝输出参数到指定的输出参数地址,数据单元的人小和类型用参数的代码表示。在子程序中局部参数存储器的参数值分配如下:
(1)按子程序指令的调用顺序,给参数值分配局部存储郜,起始地址是L0。
(2)1-8个连续的位参数分配一个字节,字节中的位地址为Ix,0~Lx.7。
(3)字节.字和双字值在局部存储器中按字节顺序分配,如LBx,LWx或LDx中品好宝
在带参教调用子程序指令中,参数必须按一定的顺序排列,输人参数在*前而,其次是输人/输出参数,*后是输出参数。
如果用语句表编程,程序调用指令的格式为;
CALL子程序号,参数1,参数2,……参数n
n0-16,带态数调用子程序使ENO=0的错误条件:SM4.3(运行时间),0008(子程序嵌套超界)。
[例6-2]子程序调用举例(见图6-7)
//0主程序
LD l0.0
CALL 10,IO.1.VB10,II.0,&VH1O0,*AC1.VD200
┆
//0主程序10
LD l2.1
CRET //从子程序条件返回
5.子程序的恢套调用
程序中*多可创建64个子程序。子程序可以嵌套调用(在子
程序中调用别的于程序),*大嵌套深度为8。
6.程序的有条件返回
在于程序中用触点电路控制RET(从子程序有条件返回)指令,触点电路接通时条件满足,子程序被终止。编程软件自动地为主程序和子程序添加无条件返回指令。
类似地,可以在主程序中用触点电路驱动END(有条件结束)指令。
图6-7子程序调用和返回
a)主程序b)子程序
产品远销全国各地:
直辖市
北京市
天津市
上海市
重庆市
自治区
新疆维吾尔自治区:2地级市-乌鲁木齐、克拉玛依19县级市-石河子、阿拉尔市、图木舒克、五家渠、哈密、吐鲁番、阿克苏、喀什、和田、伊宁、塔城、阿勒泰、奎屯、博乐、昌吉、阜康、库尔勒、阿图什、乌苏
广西壮族自治区:
14地级市-南宁、柳州、桂林、梧州、北海、崇左、来宾、贺州、玉林、百色、河池、钦州、防城港、贵港 7县级市-岑溪、凭祥、合山、北流、宜州、东兴、桂平
省级行政单位黑龙江-13地级市:哈尔滨、大庆、齐齐哈尔、佳木斯、鸡西、鹤岗、双鸭山、牡丹江、伊春、七台河、黑河、绥化
19县级市-五常、双城、尚志、纳河、虎林、密山、铁力、同江、富锦、绥芬河、海林、宁安、穆林、北安、五大连池、肇东、海伦、安达
吉林:8地级市-长春、吉林、四平、辽源、通化、白山、松原、白城
20县级市-九台市、榆树市、德惠市、舒兰市、桦甸市、蛟河市、磐石市、公主岭市、双辽市、梅河口市、集安市、临江市、大安市、洮南市、延吉市、图们市、敦化市、龙井市、珲春市、和龙市
辽宁:14地级市-沈阳、大连、鞍山、抚顺、本溪、丹东、锦州、营口、阜新、辽阳、盘锦、铁岭、朝阳、葫芦岛
17县级市-新民、瓦房店、普兰、庄河、海城、东港、凤城、凌海、北镇、大石桥、盖州、灯塔、调兵山、开原、凌源、北票、兴城
江苏:13地级市-南京、镇江、常州、无锡、苏州、徐州、连云港、淮安、盐城、扬州、泰州、南通、宿迁
27县级市-江阴市、宜兴市、邳州市、新沂市、金坛市、溧阳市、常熟市、张家港市、太仓市、昆山市、吴江市、如皋市、通州市、海门市、启东市、东台市、大丰市、高邮市、江都市、仪征市、丹阳市、扬中市、句容市、泰兴市、姜堰市、靖江市、兴化市
福建:9地级市-福州、厦门、泉州、三明、南平、漳州、莆田、宁德、龙岩
14县级市-福清市、长乐市、永安市、石狮市、晋江市、南安市、龙海市、邵武市、武夷山、建瓯市、建阳市、漳平市、福安市、福鼎市
安徽:17地级市-合肥、蚌埠、芜湖、淮南、亳州、阜阳、淮北、宿州、滁州、安庆、巢湖、马鞍山、宣城、黄山、池州、铜陵
5县级市-界首、天长、明光、桐城、宁国
浙江:11地级市-杭州、嘉兴、湖州、宁波、金华、温州、丽水、绍兴、衢州、舟山、台州
22县级市-建德市、富阳市、临安市、余姚市、慈溪市、奉化市、瑞安市、乐清市、海宁市、平湖市、桐乡市、诸暨市、上虞市、嵊州市、兰溪市、义乌市、东阳市、永康市、江山市、临海市、温岭市、龙泉市
西藏自治区:1地级市-拉萨 1县级市-日喀则 宁夏回族自治区:5地级市-银川、石嘴山、吴忠、固原、中卫 2县级市-青铜峡市、灵武市
内蒙古自治区:9地级市-呼和浩特、包头、乌海、赤峰、通辽、鄂尔多斯、呼伦贝尔、巴彦淖尔、乌兰
察布
11县级市-霍林郭勒市、满洲里市、牙克石市、扎兰屯市、根河市、额尔古纳市、丰镇市、锡林浩特市、二连浩特市、乌兰浩特市、阿尔山市
河北:11地级市-石家庄、唐山、邯郸、秦皇岛、保定、张家口、承德、廊坊、沧州、衡水、邢台
22县级市-辛集市、藁城市、晋州市、新乐市、鹿泉市、遵化市、迁安市、武安市、南宫市、沙河市、涿州市、定州市、安国市、高碑店市、泊头市、任丘市、黄骅市、河间市、霸州市、三河市、冀州市、深州市
广东:21地级市-广州、深圳、汕头、惠州、珠海、揭阳、佛山、河源、阳江、茂名、湛江、梅州、肇庆、韶关、潮州、东莞、中山、清远、江门、汕尾、云浮
22县级市-增城市、从化市、乐昌市、南雄市、台山市、开平市、鹤山市、恩平市、廉江市、雷州市 吴川市、高州市、化州市、高要市、四会市、兴宁市、陆丰市、阳春市、英德市、连州市、普宁市、罗定市
山东:17地级市-济南、青岛、淄博、枣庄、东营、烟台、潍坊、济宁、泰安、威海、日照、莱芜、临沂、德州、聊城、菏泽、滨州
28县级市-章丘、胶南、胶州、平度、莱西、即墨、滕州、龙口、莱阳、莱州、招远、蓬莱、栖霞、海阳、青州、诸城、安丘、高密、昌邑、兖州、曲阜、邹城、乳山、文登、荣成、乐陵、临清、禹城
海南:2地级市-海口、三亚
6县级市-琼海、文昌、万宁、五指山、儋州、东方
云南:8地级市-昆明、曲靖、玉溪、保山、昭通、丽江、普洱、临沧
9县级市-安宁市、宣威市、个旧市、开远市、景洪市、楚雄市、大理市、潞西市、瑞丽市
贵州:4地级市-贵阳、六盘水、遵义、安顺
9县级市-清镇市、赤水市、仁怀市、铜仁市、毕节市、兴义市、凯里市、都匀市、福泉市
四川:18地级市-成都、绵阳、德阳、广元、自贡、攀枝花、乐山、南充、内江、遂宁、广安、泸州、达州、眉山、宜宾、雅安、资阳
14县级市-都江堰市、彭州市、邛崃市、崇州市、广汉市、什邡市、绵竹市、江油市、峨眉山市、阆中市、华蓥市、万源市、简阳市、西昌市
湖南:13地级市-长沙、株洲、湘潭、衡阳、岳阳、郴州、永州、邵阳、怀化、常德、益阳、张家界、娄底
16县级市-浏阳市、醴陵市、湘乡市、韶山市、耒阳市、常宁市、武冈市、临湘市、汨罗市、津市市、沅江市、资兴市、洪江市、冷水江市、涟源市、吉首市
湖北:12地级市-武汉、襄樊、宜昌、黄石、鄂州、随州、荆州、荆门、十堰、孝感、黄冈、咸宁
24县级市-大冶市、丹江口市、洪湖市、石首市、松滋市、宜都市、当阳市、枝江市、老河口市、枣阳市、宜城市、钟祥市、应城市、安陆市、汉川市、麻城市、武穴市、赤壁市、广水市、仙桃市、天门市、潜江市、恩施市、利川市
河南:17地级市-郑州、洛阳、开封、漯河、安阳、新乡、周口、三门峡、焦作、平顶山、信阳、南阳、鹤壁、濮阳、许昌、商丘、驻马店
21县级市-巩义市、新郑市、新密市、登封市、荥阳市、偃师市、汝州市、舞钢市、林州市、卫辉市、辉县市、沁阳市、孟州市、禹州市、长葛市、义马市、灵宝市、邓州市、永城市、项城市、济源市
山西:11地级市-太原、大同、忻州、阳泉、长治、晋城、朔州、晋中、运城、临汾、吕梁
11县级市-古交、潞城、高平、介休、永济、河津、原平、侯马、霍州、孝义、汾阳
陕西:10地级市-西安、咸阳、铜川、延安、宝鸡、渭南、汉中、安康、商洛、榆林
3县级市-兴平市、韩城市、华阴市
甘肃:12地级市-兰州、天水、平凉、酒泉、嘉峪关、金昌、白银、武威、张掖、庆阳、定西、陇南
4县级市-玉门市、敦煌市、临夏市、合作市 青海:1地级市-西宁 2县级市-格尔木、德令哈
江西:11地级市-南昌、九江、赣州、吉安、鹰潭、上饶、萍乡、景德镇、新余、宜春、抚州
10县级市-乐平市、瑞昌市、贵溪市、瑞金市、南康市、井冈山市、丰城市、樟树市、高安市、德兴市