回复:讨论西门子的SCL编程问题

勿为

西门子1847工业学习平台

  • 帖子

    5
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2014-05-16

普通 普通 如何晋级?

发布于 2014-12-25 21:12:28

8楼

S7-SCL学习笔记:(2)在SCL程序中系统存储区的存取方法
FUNCTION FC1 : VOID

VAR_TEMP
// Temporary Variables
ii: INT;
END_VAR

VAR
// Byte_Bit数组的0-7直接指向Byte_Struct.B的0-7位,存储区域一至
Byte_Struct : STRUCT
B : BYTE;
END_STRUCT;
Byte_Bit AT Byte_Struct: ARRAY[0..7] OF BOOL;

// BIT_VAL数组的0-7直接指向B_VAL的0-7位,存储区域一至
B_VAL : BYTE;
BIT_VAL AT B_VAL: ARRAY[0..7] OF BOOL;

END_VAR;

// 在SCL程序系统存储区的存取方法:绝对地址、数组、符号调用
Q0.0 := Input00; // // 先在符号表中为I0.0定义符号:Input00
Q0.1 := TRUE;
Q[0,2] := I[0,2];
Q[0,3] := TRUE;
OFF_ON := 1; // 先在符号表中为Q0.4定义符号:OFF_ON
"开关1" := true; // 先在符号表中为Q0.5定义中文符号:开关1,调用时要带双引号

PQB272 := INT_TO_BYTE(BYTE_TO_INT("模拟量输入1") + 80); // 先在符号表中为PIB272定义符号:模拟量输入1
PQB[273] := INT_TO_BYTE(BYTE_TO_INT(PIB[273]) + 90);
"模拟量输出1" := DB10.NEWVAL; // 先在符号表中为PQB272定义符号:模拟量输出1

// AT 用法举例
Byte_Struct.B := MB100;

FOR ii:= 0 TO 7 BY 1 DO
// Statement Section
Q[1,ii] := Byte_Bit[ii];
END_FOR;

B_VAL := MB100;

FOR ii:= 0 TO 7 BY 1 DO
// Statement Section
Q[2,ii] := BIT_VAL[ii];
END_FOR;

END_FUNCTION
个人博客 www.tansoo.cn
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。