电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

19页
  • 卖家[上传人]:小**
  • 文档编号:88209068
  • 上传时间:2019-04-20
  • 文档格式:DOC
  • 文档大小:373KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、在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

      2、编程,并曾经学过至少一种计算机高级编程语言。 一、 软件的使用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文件名,然后执行

      3、编译即可。 二、语法规则1、编写SCL Source文件的一般规则 FB, FC, OB, DB以及用户定义的UDT,它们使用的任意数字号均可以在SCL Source中编辑。 每种块类型都有它自己的结构。 每段落或者每个变量的声明以符号”;”标志结束。 不区分大小写。 注释仅存在于程序文档中,它不影响程序运行。 当一个功能块被调用时,其背景数据块被自动创建,因此它们不需要被编辑。 DB0有特定用途,因此在程序中不能创建DB0. 2、 编写块的先后次序 被调用的块必须位于调用块之前。 UDT的定义必须位于其被使用的位置之前。 共享数据块必须位于那些使用它的所有块之前。 三、 数据类型1、数据类型预览、基本数据类型2、补充、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-

      4、20-12:20:30.10 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 数组类型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之间的任意整数。所

      5、有的基本数据类型均可用于数组。数组可以使用变量进行索引,例如:arrname_1 i := arrname_2 j ; STRUCT类型e.g. 声明一个结构MOTOR中包含另一个结构DATA。对结构声明时,可以初始化元素,也可以在使用之前再初始化。VARMOTOR : STRUCTDATA : STRUCTLOADCURR : REAL ;VOLTAGE : INT := 5 ;END_STRUCT ;END_STRUCT ;END_VAR结构以WORD的形式结尾,否则系统自动把丢失的字节补到结构中去。 用户定义类型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_S

      6、TRUCT;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 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

      7、 : ARRAY1.1000 OF REAL;END_VARBEGIN/ .FC100(N_out := ii, out := aa); /调用FC100,使用指针的方式传递整个数组/ .END_FUNCTION_BLOCK 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;

      8、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中使用高级语言编程》由会员小**分享,可在线阅读,更多相关《在s7300400型plc中使用高级语言编程》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.