tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 能源/化工 >>

xScx语言


SUPCON

JXSCX语言 JX-300X - SCX语言

浙大中控 培训中心, 2000 培训中心,

2012年4月20日

SUPCON





SCX语言简介 SCX语言特点 运行原理 开发环境
语言结构 注意事项

JX-300X新功能

SUPCON

SCX语言简介

高级语言 工程师站开发复杂控制算法的平台 安全检查和控制功能扩充 编辑、编译、下装 控制站调度执行

SUPCON

SCX语言特点

功能强,容量大 实时性强,可靠性高 面向控制工程 简单易学,快速开发 流行的编程环境 不是C语言!!!

SUPCON

运行原理

JX-300 DCS 系统 工程师站 AdvanTrol 组态信 息下装 SCX语 言软件 SCKey 组态软件 梯形图 软件 流程图制 作软件
SCX语言源代 码文件

通讯 模块

报表组 态软件

SCX语言目 标代码

由组态软件将目标 代码下装至下位机 指定的地址空间内 控制站

CS 监控调度
SCX语言目标代码存放区 域

I/O 被控对象

SUPCON

SCX语言开发环境 SCX语言启动 编辑环境 文件管理 错误处理 编 译 中间代码 帮助系统

SUPCON

SCX语言组态

SUPCON

编辑环境

SUPCON

菜单栏、工具栏
文件菜单

SUPCON

编辑、编译菜单
编辑菜单

编译菜单

SUPCON

查看菜单

查看菜单

选项菜单

SUPCON

窗口、帮助菜单

窗口菜单

帮助菜单

SUPCON

帮助系统

SUPCON

开发流程 组态软件SCKEY激活SCX语言开发环境 在SCX语言开发环境里编写源程序 保存、编译并生成目标代码 通过帮助系统查找有关信息 查看中间代码,确认算法 组态或监控软件管理目标代码并下装到控制站 控制站执行目标代码,完成控制功能

SUPCON

编程规则(一)
SCX语言容量 语言框架 数据类型 常数、计时器 位号 标识符 运算符 运算优先级 运算表达式

SUPCON

语法结构(一)
定义程序 赋值语句 条件语句 循环语句——for语句 循环语句——while语句 函数和子程序 折线表——定义 折线表——定义示例 折线表——插值计算 折线表——取值计算 折线表——写值计算

SUPCON

语法结构(二)
质量码 BSC原理图 BSC函数成员 BSC使用示例 CSC原理图

SUPCON

SCX语言容量 SCX语言容量
源代码— 基本64K,可扩展到256K 目标代码— 64K程序 64K数据 64K扩展 系统变量资源
定时器—3类256个 3 256 热备份变量—128四字节 折线表—一维32个,二维32个 自定义变量 一字节—4096个 二字节—2048个 四字节—512个 八字节—256个

SUPCON

语言框架
global declaration //全局定义,包括折线表和全局变量 main( ) //主程序入口 {//大括号必须单行书写 //主程序 statements sequence //语句序列 } return-type func1(parameter list) //函数头 { //函数体 statements sequence //语句序列 } //……

SUPCON

数据类型

采用十二位小数的定点数,规定如下: A. 运算精度2-12=0.024%; B. JX-300X规定,所有输入信号被转化成0.000~1.000的数值。
M SB

0

1

2

3

4

5

6

7

8

9 1 0 11 1 2 1 3 1 4 1 5

LSB

符号位

整数位

小数位

SUPCON

常数
1.

在表达式中,常数类型必须同表达式参数类型相同,如: int temp_1, temp_2; float temp_3, temp_4; sfloat temp_5, temp_6; temp_1 = 3; temp_2 = temp_1*2;//2, 3表示整数 temp_3 = 0.234; temp_4 = temp_3*2;//0.234, 2表示浮点数 temp_5 = 2.5f; temp_6 = temp_5*2.0f; //2.5f, 2f表示半浮点数
2.

开关型常数为ON、OFF: 开关类型变量为字节型,只能被赋值为开关型常数 。

SUPCON

位号
在SCX程序中引用位号时,需用_TAG(" ")把组态时定义的位号括起 来,如_TAG("PI-101a")。 注意事项: 1. 所引用的位号不必预先在程序中定义,但必须是在组态文件中已经 定义的。 2. 位号引用规则:用户直接用位号标识代表位号值,可以进行取值和 赋值操作。 3. 位号的第一字符只能是字母或下划线。 4. 位号中的空格不忽略,而前后的空格自动忽略。 5. 提供支持_TAG("*****")[i]的书写形式,表示该位号后的第i个位号 。 6. 提供支持_TAG("*****").MEMBER的书写形式,表示该回路的成员 变量。 7. 提供区分位号的码制/百分数制(1码=1/4095百分数)及其相互转换 的函数。 8. 位号字符数必须少于等于10。

SUPCON

标识符

在SCX语言中,系统变量、用户自定义变量、函数 、宏、标号等都需要定义其名称以供识别,这些名称统称 为标识符。 标示符的命名必须满足下列条件: 1.以英文字母开头; 2.续以英文字母、数字或下划线( _ ); 3.字符长度最多为32。

SUPCON

运算符

SUPCON

运算优先级
SCX语言的运算符的优先级按以下顺序从高到低排列(同一行运算 符的运算优先级相同): { }(该运算符只能单独一行) . () NOT -(单目负) +(单目正) * / + < <= > >= == != AND OR =(赋值运算)

SUPCON

运算表达式
1.

运算表达式由以下规则产生: opt1为任意一个单目运算符,opt2为任意一个二目运算符, oprn为任意操作数(包括函数、模块成员的引用)。exp为运 算表达式,=表示定义。 a) exp = oprn; b) exp = opt1 oprn; c) exp = oprn opt2 oprn; d) exp = opt1 exp; e) exp = exp opt2 exp; 在运算过程中,数据类型和运算要求的类型要一致,每行只能 写一个运算表达式。

SUPCON
1 宏定义 语法: #define 宏名 常数 解释: 定义一个常数。 举例: #define Pi 3.14 #define LoopTime 160 //选择定时器序号

定义程序

2 变量声明 语法:数据类型 变量名1 , 变量名2 , … ,变量名n; 数据类型 变量名[数组长度];//数组声明 举例: sfloat sA[60]; //表示共有60个整数,起始下标为0,末尾下标为59 sfloat sB[60]; sfloat Ti210a,Ti210b; //变量Ti210a和Ti210b的数据类型都是半浮点型

SUPCON

赋值语句

语法: 变量名 = 运算表达式; 举例: temp_A = (temp_B + C) * D / temp_F; _TAG("DP205B")=ON;//将开关动作按钮置为ON状态

SUPCON

条件语句
if 条件表达式1 { ... //语句序列1 } [[ else if 条件表达式2 { ... //语句序列2 } else if 条件表达式3 { ... //语句序列3 } ] else { ... //语句序列4 } ] ... //语句序列5

例:

if (A > B) { x = A; } else { x=B; } if (x > C) { x = C; }

SUPCON

循环语句——for语句

语法: for (条件表达式) { ... //语句序列1 } ... //语句序列2 其中条件表达式中所用的计数 变量为int型变量。初值、终值、 增量为运算表达式。

举例: int Stat[23];
int I; for (I=0; I<23; I=I+1) { Stat[I] = I; }

SUPCON

循环语句——while语句

语法: while (条件表达式) { ... //语句序列1 } ... //语句序列2

举例: int D; D = 10 while (D >= 5) { D = D - 1; }

SUPCON

函数和子程序
[返回类型] 函数或子程序名([参数列表]) { ... } 其中,参数列表形式如下: 数据类型 参数1,...,数据类型 参数n 此时,参数1~参数n称为形式参数,简称形参。

SUPCON

折线表——定义
系统定义有32个二维10段折线表和16个一维16段折线表,用户 可以改变这些折线表的定义。 1. 二维折线表定义 语句 #F_XY 序号 { X:浮点常数列表; Y:浮点常数列表; } X常数序列必须递增, 常数之间用逗号隔开, 序号取值范围为0~31。

2.一维折线表定义语 一维折线表定义语 句 #F_X 序号 { 浮点常数列表; }
序号取值范围为0~15。

SUPCON

折线表——定义示例
#F_X 1 //定义序号为1的一维折线表 { 0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8 } #F_XY 1 //定义序号为1的二维折线表 { X:0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5 //X轴向 Y:0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5 //Y轴向 }

SUPCON

折线表——插值计算
fx(一维16段折线表折线插值计算) (一维 段折线表折线插值计算 段折线表折线插值计算) 语法: y= fx(input,index); input——输入值,半浮点数。 Index——指定的折线表序号, 0 ~ 15,整型。 y——指定的折线表进行折线插值 计算后的值,半浮点数。 举例: ... sfloat a,c; c = fx(a,3); ... fxy( 二维 段折线表折线插值计算 ( 二维10段折线表折线插值计算 ) 语法: y= fxy(input,index); input——输入值,半浮点数。 index——折线表序号,0 ~ 31,整型 y——用指定的折线表进行折线插值计 算后的值,半浮点数。 举例: ... sfloat a,c; c = fxy(a,1); ...

SUPCON

折线表——取值计算
getfx(取一维折线表的数据项) (取一维折线表的数据项) 语法: y= getfx(index,n); index——折线表序号,0~31,整型。 n——数据项序号,整型。 y——指定的折线表的第n个数据的值 ,浮点数 举例: ... float c; c = getfx(0,3); ... getfxy_x(取二维折线表的x轴的数据 (取二维折线表的 轴的数据 项) 语法: y= getfxy_x(index,n); index——折线表序号,0 ~ 31,整型 n——数据项序号,整型。 y——指定的二维折线表的x轴的第n 个数据的值, 浮点数。 举例: float c; ... c = getfxy_x(0,10); ... 参考条目: (取二维折线表的y轴的数据项 getfxy_y(取二维折线表的 轴的数据项


SUPCON

折线表——写值计算
setfx(写一维折线表的数据项) (写一维折线表的数据项) 语法: setfx(d,index,n); d——所写数据,浮点数。 index——折线表序号,0 ~ 31,整型 n——数据项序号,整型。 该函数没有返回值,只在函数内部进 行一些操作。 举例: ... float d; d=7.0; setfx(d,0,10); ... setfxy_x(写二维折线表的x轴的数据项) (写二维折线表的 轴的数据项 轴的数据项) 语法: setfxy_x(d,index,n); d——所写数据,浮点数。 index——折线表序号,0 ~ 31,整型 n——数据项序号,整型。 该函数没有返回值,只在函数内部进 行一些操作。 举例: ... float d; d=7.0; setfxy_x(d,0,10); 参考条目: setfxy_y(写二维折线表的 轴的数据项) 轴的数据项) (写二维折线表的y轴的数据项

SUPCON

质量码
质量码与某个成员的相关数值进行“与”操作的方法来获得该 信号是否处于报警状态。

if (_TAG("FI-OLD").FLAG & 5 == 5) //判断是否上上限报警(相关数值为5) { _TAG("HH-ALM") = ON; //自定义位号存储上上报警信息 } //ON:FI-OLD处于上上限报警

SUPCON

BSC原理图
外给定 ESV

输入测量值 PV 控制信息 Flag 输入报警 外给定标志 SwSV - 内给定 SV 偏差报警 ER 设定输出 + 输入补偿 IA PID + 输出补偿 OA 手自动切换开关 SwAM + + +

手动操作

输出限幅 MH,ML 输出跟踪值 TV

跟踪开关 SwTV

输出阀位 MV

SUPCON

BSC函数成员

SUPCON

BSC使用示例

SUPCON
输入测量值 ExPV 输入报警 控制信息 Flag 外给定标志 SwSV + 内给定 ExSV 偏差报警 ExER 设定输出 + 输入补偿 ExIA PID2 输 出 阀 位 输 入 测 量 值 + 输出补偿 ExOA + 输入报警 串级/自动开关 SwCas - + 内给定 InSV 偏 差 报 警 设定输出 + 输入补偿 InIA PID1 + + 输出补偿 InOA 手自动切换开关 SwAM 输出限幅 MH,ML 输出跟踪值 TV + +

CSC原理图

外给定 ExESV



手动操作

跟踪开关 SwTV 输 出 阀 位

SUPCON

库函数
半浮点计算模块 浮点计算模块 辅助计算模块 混合计算 控制模块 类型转换模块 常用语句

SUPCON

半浮点计算模块
sfadd sfsub sfadd2 sfsub2 sfmul sfdiv sfabs sfsqr sfsqrt sfloat sfloat sfloat sfloat sfloat sfloat sfloat sfloat sfloat 半浮点加法 半浮点减法 半浮点加法 半浮点减法 半浮点乘法 半浮点除法 半浮点求绝对值 半浮点求平方 半浮点求平方根

SUPCON

示例

参考条目: 参考条目: sfsub sfmul sfdiv sfabs sfsqr sfsqrt

sfadd(半浮点数加法) (半浮点数加法) 语法: y= sfadd(x1,x2); x1,x2——半浮点数。 y——x1,x2 的和值,半浮点数。返回值范围:-7.9997≤ y ≤7.9997。 当两数和值超出该范围时,则限制在此范围内,即: x1+x2<-7.9997时,返回值为-7.9997, x1+x2>7.9997时,返回值为7.9997。 举例: ... sfloat a,b,c; a = sfadd(7.0f,2.0f);// a = 7.9997f b = sfadd(0.35f,0.25f);// b = 0.6f c = sfadd(-0.3f,0.9f);// c = 0.6f ...

SUPCON

浮点计算模块
fabs floor ceil sin asin sinh cos acos cosh tan atan atan2 tanh eval_poly pow log log10 exp sqrt float float float float float float float float float float float float float float float float float float float 求绝对值函数 按输入浮点值返回最大整数 按输入浮点值返回最小整数 正弦函数 反正弦函数 工程正弦函数 余弦函数 反余弦函数 工程余弦函数 正切函数 反正切函数 反正切函数2 工程正切函数 多项式求值 幂函数 自然对数函数 对数函数 指数函数 求平方根函数

SUPCON
参考条目: 参考条目:

示例
sin(正弦函数) (正弦函数)

sinh asin cos acos cosh tan atan atan2 tanh

语法: y= sin(x); x——弧度值,浮点数。求角度值的正弦y,需要先转换为弧度值,然后 再使用本公式求值。 如求45°角的正弦,先转换为弧度值,约为0.785,然后应用本公式求正 45 , 0.785 弦值。 y——x 的正弦值,浮点数。返回值范围:-1≤ y ≤1。 举例: ... float a,b; b=0.8; a = sin(b);// a = 0.717356 ...

SUPCON

辅助计算模块
hal lal hlim llim hsel lsel fx getfx setfx fxy getfxy_x getfxy_y setfxy_x setfxy_y ded led lag ledlag mav msw sw vlm bool bool sfloat sfloat sfloat sfloat sfloat float float sfloat float float float float sfloat sfloat sfloat sfloat sfloat sfloat sfloat sfloat 高报警模块 低报警模块 高限模块 低限模块 高选择器 低选择器 一维折线表插值 取一维折线表的数据项 写一维折线表的数据项 二维折线表插值 取二维折线表的X轴的数据项 取二维折线表的Y轴的数据项 写二维折线表的X轴的数据项 写二维折线表的Y轴的数据项 纯滞后模块 一阶超前模块 一阶滞后模块 一阶超前滞后模块 移动平均函数 多路切换模块 开关切换模块 速度限制模块

SUPCON

高、低报警模块
1. hal(高限报警) 语法: y= hal(x,hlimit,interval,n); x——输入值,半浮点数; hlimit——报警值,半浮点数; interval——磁环宽度(报警死区),半浮点数; n——序号,整型,范围是0~127。不许重复; y——布尔值。若输入值大于报警设定值,返回ON,反之,则返回OFF值。 报警采用磁环形式如下图示: 举例: ... 非常报警 sfloat x; bool c; 正常 c = hal(x,0.9f,0.05f,0); ... 磁环宽度 参考条目:lal 报警设定值

SUPCON

高、低限模块
1. hlim(高限器) (高限器) 语法: y= hlim(x,hlimit); x——输入值,半浮点数。 hlimit——高限值,半浮点数。 y——半浮点数。 若x < hlimit,则返回x; 若x ≥hlimit,则返回hlimit。 举例: sfloat hlimit; hlimit = 3.0f; sfloat a,c,d; a = 0.2f; c = hlim(a,hlimit);// c = 0.2f d = hlim(0.5f,0.1f);// d = 0.1f ... 参考条目:llim

SUPCON

高、低选择
hsel(高选择器)——即求较大值 (高选择器) 即求较大值 语法: y= hsel(x1,x2); x1,x2——半浮点数。 y——x1与x2中的较大值,半浮点数。 举例: sfloat a,b; sfloat c; a=0.3f; b=0.2f; c = hsel(a,b);// c = 0.3f ... 参考条目:lsel

SUPCON

纯滞后
ded(纯滞后模块) (纯滞后模块) 语法: y= ded(x,nTSample,nNum,n); x——输入值,半浮点数。 nTSample——采样时间常数,单位为0.1秒,整型。 nNum——保留历史数据个数,最大为50,整型。 n——序号,整型,范围是0~31。不允许重复。 y——对输入值x进行纯滞后处理后的值,半浮点数。 本函数的功能是产生一个纯滞后,即现在的输出值为t = nTSample*nNum秒种以前的值 换句话说,现在的输入值需t秒延迟后方能输出。 举例: ... sfloat c,x; c = ded(x,20,50,0);//采样周期2秒,50个历史数据,纯滞后100秒。 ... 参考条目:led lag ledlag

SUPCON

一阶超前
Y
led(一阶超前模块) (一阶超前模块) 37% 语法: y= led(x,t,n); 0 T x——被处理量,半浮点数。 led特性曲线 t——时间常数,单位为0.1秒,整型。 n—— n——序号,整型,0~31。 0~31 y——对x进行一阶超前处理后的值,半浮点数。 一阶超前是按下式进行处理: X×TS/(TS + 1),其中S为拉普拉斯算子,T为时间常数。 举例: ... sfloat c,a; c = led(a,100,0); ...

t(s)

SUPCON

一阶滞后

SUPCON

一阶超前滞后
Td>Ti
输入信号

ledlag(一阶超前滞后模块) (一阶超前滞后模块) Td<Ti 输出信号(增益=1,0) 语法: y= ledlag(x,ti,td,n); x——被处理量,半浮点数。 一级超前滞后阶跃响应 ti——滞后时间常数,单位为0.1秒,整型。 td——超前时间常数,单位为0.1秒,整型。 n——序号,整型,0~31。 y——对x进行一阶超前滞后处理后的值,半浮点数。 一阶超前滞后是按下式进行处理: X×(Td×S + 1)/(Ti×S + 1),其中S为拉普拉斯算子。 举例: ... sfloat a,b; b = ledlag(a,100,50,0);

SUPCON

移动平均
mav(移动平均函数) (移动平均函数) 语法: y= mav(x,t,num,n); x——输入新值,半浮点数。 t——采样时间间隔设定值,整型。 num——采样点数,1~8,整型。 n——序号,整型,0~31。 y——移动平均值,半浮点数。 该指令对输入数据用指定的时间间隔采集指定的点数(最大为8点) 对采样点求平均值,经过一个采样周期,采样一点新值就丢掉最前 一点值,再求平均值。这就叫做移动平均值。 计算公式如下: y=[X(T)+X(T-1)+…+X(T-m+1)]/m y为运算输出值 X(T)为T时采样值 举例: sfloat x,y; y = mav(x,20,6,0);

SUPCON

多路切换
msw(多路切换) (多路切换) 语法: y= msw(switch,x0,x1,x2,x3,x4,x5); switch——切换选取序号,整型; x0,x1,x2,x3,x4,x5——切换值,半浮点数。 y——半浮点数。当switch = 0时,返回值为x0;switch = 1时,返回值为x1;依次类推 举例: ... int switch; sfloat a; switch=2; a = msw(2,0.0f,0.1f,0.2f,0.3f,0.4f,0.5f);// a = 0.2f

SUPCON

开关切换
sw(两路切换) (两路切换) 语法: y= sw( switch,x1,x2); switch——切换开关,布尔值。 x1,x2——切换值,半浮点数。 y——为半浮点数。当switch=OFF 时返回值为x1;sw=ON时返回值为x2。 举例: ... bool switch; sfloat a; switch = ON; a = sw(switch,0.0f,1.0f);// a = 1.0f ...

SUPCON

速度限制
100% 输入 vlm(速度限幅模块) (速度限幅模块) 语法: y= vlm(x,v1,v2,n); 1/v1 x——输入值, 半浮点数,0~1。 v1——上升速度限制, 单位1/分,正数,半浮点数。 v2——下降速度限制,单位1/分,正数,半浮点数。 n——序号,整型,0 ~ 127。 y——对输入值x进行速度限幅处理后的值,半浮点数。 如图,当输入变化率大于v1时,输出以v1速度变化, 当输入速度小于v2时,输出以v2速度变化。 举例: ... float a,c; c = vlm(a,0.8f,0.8f,0); ... 输出

1/v2

SUPCON

混合计算
混合计算模块 函数名 返回值 功能说明 fkdivf sfloat 半浮点整数除法 fkmulf sfloat 半浮点整数乘法 fkmulf int 半浮点整数乘法 kfdivk int 整数的半浮点除法 kkdivf sfloat 整数除法

SUPCON

半浮点整数除法
fkdivf(半浮点整数除法) f/k=f 语法: y= fkdivf(x1,k); x1——半浮点数,k——整型。 y——x1除以k的商,半浮点数。返回值范围:-7.9997≤ y ≤7.9997。 说明: 当0/0 时,返回值为0; 当负数/0时,返回值为-7.9997; 当正数/0时,返回值为7.9997。 举例: ... sfloat a,b; a = fkdivf(-5.0f,-5);// a = 1.0f b = fkdivf(7.0f,10);// b = 0.7f ... 参考条目: fkmulf fkmulk kedivk kkdivf

SUPCON

控制模块

控制模块 函数名 dgap2 Dgap3 csc bsc

返回值 sfloat sfloat sfloat sfloat

功能说明 二位式控制模块 三位式控制模块 串级控制模块 PID控制模块

SUPCON

二位式控制模块
dgap2(二位式控制模块) 语法: y= dgap2(deviation,hysteresis,n); deviation——给定值与测量值间的偏差 SV-PV,半浮点数。 hysteresis——死区间隙,半浮点数。 n——模块序号0~31,整型。 y——输出阀位值,半浮点数。输出100%表示输出增加,输出0表示输出减少。 举例: ... sfloat a,err; a = dgap2(err,0.05,0); ... 参考条目: dgap3 csc bsc

二位式调节

SV
输出 间隙 输出减少 输出增加

PV
偏差

SUPCON

三位式控制模块
dgap3(三位式控制模块) (三位式控制模块)
SV
间隙 输出 输出增加

语法: PV y= dgap3(deviation,zone,hysteresis,n); deviation——偏差 SV-PV,半浮点数。 zone——间隙,半浮点数。 hysteresis——死区间隙,半浮点数。 n——序号0~31,整型。 y——输出阀位值,半浮点数。输出100%表示输出 增加,输出0表示输出减少,50%表示不增不减。 举例: ... sfloat a,err; a = dgap3(err,0.05,0.01,0);

偏差

输出减少

间隙死区

三位式调节

SUPCON

类型转换模块
类型转换模块 函数名 norm denorm itosf sftoi ftosf sftof itof ftoi 返回值 int sfloat sfloat int float float float int 功能说明 归一化函数 反归一化函数 整数转换到半浮点 半浮点转换到整数 浮点转换到半浮点 半浮点转换到浮点 整数转换到浮点 浮点转换到整数

SUPCON

归一化函数
norm(归一化函数) 语法: y= norm(x); x——半浮点数,半浮点数 = 整数/4096。 y——半浮点数x归一化后所得整数,整型。 函数目的是将半浮点数换算成整数形式显示。 举例: sfloat a; int b; a = 0.5f; b = norm(a);// b = 2048 ... 参考条目: denorm sftoi itosf sftof ftosf sftol ltosf ftoi itof

SUPCON

常用语句
常用语句 break continue define for goto if...else main return timerm timers temerms void while g_bsc g_csc

SUPCON

编程示例 浮点运算和混合运算 库函数和折线表 结构、数组类型 定义函数 PID控制和串级控制 连锁保护

SUPCON

应用实例 扬州农药厂 控制对象(装置) 组态(位号) 自定义算法 编程(SCX语言) 调试与运行 文档

SUPCON

应用开发注意事项
完整的应用程序 全局变量定义 主程序入口 使用自定义函数和库函数 注意 编译及纠错(错误定位,错误窗口隐藏) 编辑(存储、大小写、扩展名、全屏) 帮助(上下文相关、帮助索引) 源代码文件路径

SUPCON

语言使用注意事项 大括号单行 逻辑运算和算术运算不能混合 关键字不允许嵌套使用 不同类型的变量不允许混合运算 变量不允许重复定义(同类型者除外) 标识符区分大小写 自定义函数先定义后使用

SUPCON

与各功能注意块之间的关系 AdvanTrol SCKey Ladder 位号

AdvanTrol

SCKey

位号

Ladder

SCX

其它程序 扫描运行

SUPCON

控制站调用原理 调度原理 周期性:0.5秒,1.0秒,…… 性能分析 扫描周期与SCX语言程序运行时间 SCX语言算法复杂度(真浮点运算) SCX语言指标 控制站代码容量和数据容量 运行时间与目标代码量之间的关系

SUPCON

资源列表 各类资源清单
long g_msg[128](控制站通讯) structAccum g_aacum[256](累积数组) structBSC g_bsc[128](单回路控制模块) structCSC g_csc[128](串级控制模块) long g_backup[32](热备份) timers, timerm, timerms(定时器)

SUPCON

与ANSI C的异同
共同点:部分关键字,变量,常数,函数(入口) 不同点 缺少:指针,无符号类型,关键字 增加 位 号 控制模块 控制函数 控制资源 语 法

SUPCON

中间代码
符合标准C语言 变量的含义 位号 地址 far修饰符 半浮点运算 半浮点常数 头文件 definef.h defines.h



推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com