电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

在s7300400型plc中使用高级语言编程

  • 资源ID:88209068       资源大小:373KB        全文页数:19页
  • 资源格式: DOC        下载积分:12金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要12金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

在s7300400型plc中使用高级语言编程

在S7300/400型PLC中使用高级语言编程S7-SCL是一种类似于Pasical、Deliphi的高级编程语言,其符合国际标准IEC 61131-3,也就是说支持该标准的任意厂家的PLC均可以使用与之相似的语言编程。这种语言适合于处理复杂的逻辑和大量的数学运算,由于其具有高级语言的编程结构,因此和S7的STL语句表编程方式比较起来有着更加方便的控制方式,可以这样说,只要是必须使用语句表的地方,我们均可以考虑使用SCL,也许STL在执行时比SCL更加高效,但事实上也不一定,首先SCL可以编译成STL,同时SCL设计时可以优化编程,而STL若运用不当,可能还会将低效率。当然在目前的这种系列的PLC上,效率对于我们来说已是次要的,我们更关心的是编程结构。就像在PC机上,舍弃了汇编语言,而主要采用C/C+等高级语言。总体来说,SCL适合于编写标准功能块,由于在维护中,它和STL一样,不象Lad一样利于维护,因此这些标准功能块都应该有文档说明,以便用户了解其功能。 下面的内容主要是参考西门子的S7-SCL文档,对SCL进行了系统的介绍,最后给出了示例。 这里假设读者是学过S7-300/400编程,并曾经学过至少一种计算机高级编程语言。 一、 软件的使用1、 创建一个新的S7-SCL Source 文件 打开工程项目à选择CPU站à选择S7 Programà选择Sources在右边窗口的空白处点右键选Insert New Objectà点击SCL Source双击创建的SCL Source文件,进入SCL编辑界面。 2、 块保护 在SCL Source文件的开头添加关键字:KNOW_HOW_PROTECT,当打开由其创建的块时,只能显示参数,而看不到内容。 3、主菜单”Insert”下的”Block Template”可用于插入如OB,FB等各种块的结构。”Control Structure”菜单可插入各种流程控制结构,这些都可以简化编程。 4、在运行程序之前,首先必须对它进行编译,可以编译整个Source文件或者某个被选择的块,通过选择菜单File > Compile Selected Blocks。也可以把几个Source文件一起进行编译,其方法是创建一个S7-SCL compilation control file.在该文件中依次输入需要编译的SCL Source文件名,然后执行编译即可。 二、语法规则1、编写SCL Source文件的一般规则 FB, FC, OB, DB以及用户定义的UDT,它们使用的任意数字号均可以在SCL Source中编辑。 每种块类型都有它自己的结构。 每段落或者每个变量的声明以符号”;”标志结束。 不区分大小写。 注释仅存在于程序文档中,它不影响程序运行。 当一个功能块被调用时,其背景数据块被自动创建,因此它们不需要被编辑。 DB0有特定用途,因此在程序中不能创建DB0. 2、 编写块的先后次序 被调用的块必须位于调用块之前。 UDT的定义必须位于其被使用的位置之前。 共享数据块必须位于那些使用它的所有块之前。 三、 数据类型1、数据类型预览、基本数据类型2、补充<1>、DATE_AND_TIME Data Type其值的范围:DT#1990-01-01-0:0:0.0-DT#2089-12-31-23:59:59.999该类型以BCD码形式存储。 例如20/Oct./1995 12:20:30 and 10 milliseconds显示如下:DATE_AND_TIME#1995-10-20-12:20:30.10DT#1995-10-20-12:20:30.10 <2>STRINGe.g. 声明VARText1 : String 123; /该字符串的最大容量为123个字符Text2 : String; /该字符串的默认容量为254个字符END_VAR 初始化:x : STRING7:='Address' /在使用STRING前,必须对它赋值。 FUNCTION Test : STRING45VAR_TEMPx : STRING45;END_VARx := 'a'x := concat (in1 := x, in2 := x);Test := x; /返回值END_FUNCTION <3>数组类型e.g.VARCONTROLLER1 : /声明3行、4列的二位整数数组,并对其初始化ARRAY1.3,1.4 OF INT:= -54, 736, -83, 77,-1289, 10362, 385, 2,60, -37, -7, 103 ;CONTROLLER2 : ARRAY1.10 OF REAL ; /声明10个数的一维实数数组END_VAR注:数组的最大维数为6维,数组的索引范围为-32768 - 32767之间的任意整数。所有的基本数据类型均可用于数组。数组可以使用变量进行索引,例如:arrname_1 i := arrname_2 j ; <4>STRUCT类型e.g. 声明一个结构MOTOR中包含另一个结构DATA。对结构声明时,可以初始化元素,也可以在使用之前再初始化。VARMOTOR : STRUCTDATA : STRUCTLOADCURR : REAL ;VOLTAGE : INT := 5 ;END_STRUCT ;END_STRUCT ;END_VAR结构以WORD的形式结尾,否则系统自动把丢失的字节补到结构中去。 <5>用户定义类型UDT (使用关键字TYPE)TYPE /定义名字为MEASVALUES的数据类型MEASVALUES: STRUCTBIPOL_1 : INT := 5;BIPOL_2 : WORD := W#16#FFAA ;BIPOL_3 : BYTE := B#16#F1 ;BIPOL_4 : WORD := W#16#1919 ;MEASURE : STRUCTBIPOLAR_10V : REAL ;UNIPOLAR_4_20MA :REAL ;END_STRUCT;END_STRUCT;END_TYPE/在FB10中使用该类型FUNCTION_BLOCK FB10VARMEAS_RANGE : MEASVALUES; /创建UDT数据END_VARBEGIN/ 使用UDT数据MEAS_RANGE.BIPOL_1 := -4 ;MEAS_RANGE.MEASURE.UNIPOLAR_4_20MA := 2.7 ;END_FUNCTION_BLOCK <6>POINTER类型e.g./定义功能块FC100FUNCTION FC100 : VOID /VOID表明该功能不返回值VAR_IN_OUT /定义FC100的输入输出型参数N_out : INT;out : POINTER; /定义POINTER型数据类型,参数均为临时变量END_VARVAR_TEMP /定义临时变量ret : INT;END_VARBEGIN /进入函数主体/ .ret := SFC79(N := N_out, SA := out);END_FUNCTION/定义功能块FB100FUNCTION_BLOCK FB100VAR /定义静态变量,即离开块后仍旧保存状态的变量ii : INT;aa : ARRAY1.1000 OF REAL;END_VARBEGIN/ .FC100(N_out := ii, out := aa); /调用FC100,使用指针的方式传递整个数组/ .END_FUNCTION_BLOCK <7>ANY类型e.g.VAR_INPUT /输入型变量iANY : ANY; /定义为ANYEND_VARVAR_TEMPpANY : ANY; /定义为ANYEND_VARCASE ii OF /CASE分支语句1: pANY := MW4; / 将MW4的地址赋给pANY/ of MW43.5: /等于3,4,5的情况下pANY:= aINTii; / pANY contains the address/ of the ii th/ element of the aINT field;100:pANY := iANY; / pANY contains the value/ of the iANY input variableELSEpANY := NIL; / pANY contains the value/ of the NIL pointerEND_CASE;SFCxxx(IN := pANY); 四、局部变量和参数的声明1、变量 静态变量:用于保持块的数据,该数据存在背景数据块中。临时变量:仅在块运行过程中存在。若多个变量的数据类型一致,可用如下方式:VALUE2, VALUE3,VALUE4,.: INT;声明时可以初始化:VALUE :REAL := 20.25;数组的初始化有两种方式:CONTROLLER1 : ARRAY 1.2, 1.2 OF INT := -54, 736, -83, 77;当把相邻的数组元素赋相同的值时,例如,把A32到A311的值设为100.0:A3 : ARRAY1.12 OF REAL := 0.0, 10(100.0), 1.0; 2、块参数 输入参数: 用于接收当块被调用时的输入值,他们是只读的。输出参数: 传输当前值到这个调用块,在被调用块中应该对该参数赋值输入/输出参数:用于接收当块被调用时的输入值,并可以把结果返回到调用块。 3、使用多重背景 声明方式如下:Supply1 : FB10; / Supply1为FB10的背景DBSupply2,Supply3,Supply4 : FB100; /为FB100声明多个背景DBMotor1 : Motor ; / Motor为某个FB的符号名 4、 变量的声明五、常量S7-SCL常量分位常量、数字常量、字符常量、时间常量,使用CONSTEND_CONST声明。e.g.CONSTNumber := 10 ; /整数常量TIMEOFDAY1 := TIME#1D_1H_10M_22S_2MS ; /时间常量NAME := 'SIEMENS' ; /字符串常量NUMBER2 := 2 * 5 + 10 * 4 ; NUMBER3 := 3 + NUMBER2 ;END_CONST 1、 位常量 Bool#false 位的值为TRUE或者FALSE8#177777 8进制DW#16#0000_0000 16进制 2、 整数常量,它有多种表达方式 15 10进制值为152#1111 2进制值为1516#F 16进制值为15Value_2:=2#0101; / 2进制值为5Value_3:=8#17; / 10进制值为14Value_4:=16#F; / 16进制值为15

注意事项

本文(在s7300400型plc中使用高级语言编程)为本站会员(小**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.