Download presentation
Presentation is loading. Please wait.
1
JX-300X - SCX语言 2019年4月30日
2
概 述 SCX语言简介 SCX语言特点 运行原理 开发环境 语言结构 注意事项 JX-300X新功能
3
SCX语言简介 高级语言 工程师站开发复杂控制算法的平台 安全检查和控制功能扩充 编辑、编译、下装 控制站调度执行
4
SCX语言特点 功能强,容量大 实时性强,可靠性高 面向控制工程 简单易学,快速开发 流行的编程环境 不是C语言!!!
5
运行原理 I/O JX-300 DCS 系统 工程师站 SCKey 组态软件 报表组 态软件 AdvanTrol 控制站 通讯 模块
SCX语言目标代码 SCX 语言源代 码文件 SCX语 言软件 组态信息下装 由组态软件将目标 代码下装至下位机 指定的地址空间内 语言目标代码存放区 域 流程图制 作软件 被控对象 CS 监控调度 梯形图软件
6
SCX语言开发环境 编辑环境 颜色标识 文件管理 错误处理 编 译 中间代码 帮助系统
7
编辑环境
8
颜色标识
9
帮助系统
10
开发流程 组态软件SCKEY激活SCX语言开发环境 在SCX语言开发环境里编写源程序 保存、编译并生成目标代码 通过帮助系统查找有关信息 查看中间代码,确认算法 组态或监控软件管理目标代码并下装到控制站 控制站执行目标代码,完成控制功能
11
SCX语言框架 global declaration //全局定义,包括折线表和全局变量 main( ) //主程序入口
{//大括号必须单行书写 //主程序 statements sequence //语句序列 } return-type func1(parameter list) //函数头 { //函数体 //……
12
SCX语言容量 SCX语言容量 源代码— 基本64K,可扩展到256K 目标代码— 64K程序 64K数据 64K扩展 系统变量资源
定时器—3类256个 折线表—一维32个,二维32个 自定义变量 一字节—4096个 二字节—2048个 四字节—512个 八字节—256个
13
SCX语言语法成分 数据类型、位号 标识符 算术运算与逻辑运算 关键字 函数和子程序 常数、折线表、宏定义、系统变量 库函数、控制模块
14
SCX语言结构(一) 数据类型及变量声明 位号 注意事项 bool int long
sfloat(百分型、时间型(16位无符号数,单位0.1秒)) float 数组、结构 位号 注意事项 变量声明 不同类型变量间的转换 数组 变量唯一
15
SCX语言结构(二) 标识符 运算类型及表达式 表达式符合高级语言特征 表达式注意事项 算术运算 逻辑运算 变量混合运算 逻辑算术禁止混合
单行表达式
16
SCX语言结构(三) SCX语言关键字语法 关键字注意事项 if-else if-else for, while, goto
break, continue, return define, void, main F_X, F_XY, g_bsc[n], g_csc[n], timers, timerm, timerms NOT, ON, OFF, AND, OR 关键字注意事项 关键字单行使用 大括号单行列出
17
SCX语言结构(四) 函数声明 [返回类型] 函数或子程序名([形式参数列表]) 数据类型 参数1,...,数据类型 参数n 函数体 函数使用 特殊的函数-回路控制程序入口main() 子程序 注意事项
18
SCX语言结构(五) 库函数 函数分类 与其他语言的异同 半浮点计算函数 浮点计算函数 辅助计算函数 混合计算函数 控制模块函数
类型转换函数 与其他语言的异同 SC语言(容量,风格,关键字,变量,资源等方面) ANSI C语言
19
SCX语言结构(六) 控制模块 64个控制模块 单回路控制模块、串级回路控制模块 成员开放,灵活调节控制参数 控制模块成员—结构变量成员 控制模块函数 控制模块使用注意事项
20
编程示例 浮点运算和混合运算 库函数和折线表 结构、数组类型 定义函数 PID控制和串级控制 连锁保护
21
应用实例 扬州农药厂 控制对象(装置) 组态(位号) 自定义算法 编程(SCX语言) 调试与运行 文档
22
应用开发注意事项 完整的应用程序 全局变量定义 主程序入口 使用自定义函数和库函数 注意 编译及纠错(错误定位,错误窗口隐藏)
编辑(存储、大小写、扩展名、全屏) 帮助(上下文相关、帮助索引) 源代码文件路径
23
语言使用注意事项 大括号单行 不同类型的变量不允许混合运算 变量不允许重复定义(同类型者除外) 标识符区分大小写 自定义函数先定义后使用
24
与各功能注意块之间的关系 AdvanTrol SCKey Ladder 位号 AdvanTrol SCKey 位号 SCX Ladder
其它程序 扫描运行
25
控制站调用原理 调度原理 周期性:0.5秒,1.0秒,…… 性能分析 扫描周期与SCX语言程序运行时间 SCX语言算法复杂度(真浮点运算) SCX语言指标 控制站代码容量和数据容量 运行时间与目标代码量之间的关系
26
常用语句介绍 if-else while for goto, break, continue, return define, void, main 温压补偿函数SteamComp 累积计算函数
27
资源列表 各类资源清单 long g_msg[128](控制站通讯) structAccum g_aacum[256](累积数组)
structBSC g_bsc[64](单回路控制模块) structCSC g_csc[64](串级控制模块) timers, timerm, timerms(定时器)
28
从组态软件中启动开发环境
29
与ANSI C的异同 共同点:部分关键字,变量,常数,函数(入口) 不同点 缺少:指针,无符号类型,关键字 增加 位 号 控制模块 控制函数
位 号 控制模块 控制函数 控制资源 语 法
30
中间代码 符合标准C语言 变量的含义 位号 地址 far修饰符 半浮点运算 半浮点常数 头文件 definef.h defines.h
31
半浮点计算函数 sfadd sfloat 半浮点加法 sfsub sfloat 半浮点减法 sfadd2 sfloat 半浮点加法
sfmul sfloat 半浮点乘法 sfdiv sfloat 半浮点除法 sfabs sfloat 半浮点求绝对值 sfsqr sfloat 半浮点求平方 sfsqrt sfloat 半浮点求平方根
32
浮点计算函数 fabs float 求绝对值函数 floor float 按输入浮点值返回最大整数
ceil float 按输入浮点值返回最小整数 sin float 正弦函数 asin float 反正弦函数 sinh float 工程正弦函数 cos float 余弦函数 acos float 反余弦函数 cosh float 工程余弦函数 tan float 正切函数 atan float 反正切函数 atan2 float 反正切函数2 tanh float 工程正切函数 eval_poly float 多项式求值 pow float 幂函数 log float 自然对数函数 log10 float 对数函数 exp float 指数函数 sqrt float 求平方根函数
33
辅助计算函数 hal bool 高报警模块 lal bool 低报警模块 hlim sfloat 高限模块 llim sfloat 低限模块
hsel sfloat 高选择器 lsel sfloat 低选择器 fx sfloat 一维折线表插值 getfx float 取一维折线表的数据项 setfx float 写一维折线表的数据项 fxy sfloat 二维折线表插值 getfxy_x float 取二维折线表的X轴的数据项 getfxy_y float 取二维折线表的Y轴的数据项 setfxy_x float 写二维折线表的X轴的数据项 setfxy_y float 写二维折线表的Y轴的数据项 ded sfloat 纯滞后模块 led sfloat 一阶超前模块 lag sfloat 一阶滞后模块 ledlag sfloat 一阶超前滞后模块 mav sfloat 移动平均函数 msw sfloat 多路切换模块 sw sfloat 开关切换模块 vlm sfloat 速度限制模块
34
混合计算函数 fkdivf sfloat 半浮点整数除法 fkmulf sfloat 半浮点整数乘法 fkmulf int 半浮点整数乘法
kfdivk int 整数的半浮点除法 kkdivf sfloat 整数除法
35
控制模块函数 dgap2 sfloat 二位式控制模块 dgap3 sfloat 三位式控制模块 csc sfloat 串级控制模块
bsc sfloat PID控制模块 SteamComp sfloat 温压补偿函数 AddAccum structAccum 累积加 SubAccum structAccum 累积减 ConvertAccum float 累积转换成浮点 ConverToAccum structAccum 浮点转换成累积 CompAccum int 累积量比较 TotalAccum structAccum 累积加半浮点 andint int 整型与 andlong long 长整型与 orint int 整型或 orlong long 长整型或 getbit bool 取位值 getsfloat sfloat 取半浮点 getint int 取整型值 getfloat float 取浮点值 setbit long 设位值 setsfloat long 设半浮点值 setint long 设整型值 setfloat long 设浮点值 getmsg long 取控制站通讯数据 sendmsg void 发数据
36
类型转换函数 norm int 归一化函数 denorm sfloat 反归一化函数 itosf sfloat 整数转换到半浮点
sftoi int 半浮点转换到整数 ftosf float 浮点转换到半浮点 sftof float 半浮点转换到浮点 itof float 整数转换到浮点 ftoi int 浮点转换到整数
37
BSC模块原理图
38
CSC模块原理图
Similar presentations