2、C语言功能块
    本章重点介绍C语言编辑功能块的特点、、编辑、指令调用、函数的存储、应用要点等,并附有常用函数列表。
2-1.功能概述
2-2.指令形式
2-3.操作步骤
2-4.函数的导入、导出
2-5.功能块的编辑
2-6.程序举例
2-7.应用要点
2-8.附函数表
2-1、功能概述
XCP新增功能,支持用户在XCP Pro编程软件中利用C语言编写功能块,在需要的地方进行调用,其最大的优点是支持几乎所有的C语言函数,增强了程序的XX性,同时由于可进行多处调用和不同文件的调用,大大提高了编程人员的效率。
2-2、指令形式
:C语言函数功能块名称,由用户自定义。
          :对应C语言函数内字W的起始地址,只能为寄存器D。
          :对应C语言函数内位B的起始地址,只能为内部线圈M。
适用于XC系列PLC V3.0C与以上版本,XC1、XC3、XC5都支持。
名称由数字,英文,下划线组成,首字符不能为数字,名称长度需<=9个字符。
名称不能与PLC内置指令名称冲突,如LD,ADD,SUB,PLSR等。
名称不能与当前PLC已经存在的函数功能块同名。
2-3、操作步骤
1、打开PLC编辑软件,在左侧的“工程”工具栏内选择“函数功能块”,右击选择“添加新函数功能块”。
2、出现如下对话框,填写所要编辑函数的信息。
3、在新建完成后,会出现下面的编辑画面。
参数传递方式: 在梯形图调用时,传入的DM,即为WB的起始地址。如上图 D0M0开始,则W[0]D0W[10]D10,B[0]为M0, B[10]为M10。如梯形图中使用的参数为D100M100,则W[0]D100,B[0]为M100。因此,字与位元件的首地址由用户在PLC程序中设定。
参数W: 表示字软元件,使用时按数组使用,如W[0]=1;W[1]=W[2]+W[3];在程序中可按照标准C规范使用。
参数B: 表示位软元件,使用时也按数组使用,支持位置1和位清零,如B[0]=1;B[1]=0; 以与赋值,如B[0]=B[1]。
双字运算:  在W前加个D,如DW[10]=100000,表示给W[10]W[11]合成的双字赋值。
浮点运算: 支持在函数中定义浮点变量,以与进行浮点运算。
函数库:用户功能块可以直接使用函数库中定义的函数和常量,函数库中包含的函数和常量见后附部分。
支持的其他数据类型:
BOOL;         //布尔量编程语言下载
INT8U;        //8位无符号整数
INT8S;        //8位有符号整数
INT16U        //16位无符号整数
INT16S        //16位有符号整数
INT32U        //32位无符号整数
INT32S        //32位有符号整数
FP32;         //单精度浮点
FP64;        //双精度浮点
预定义的宏:
#define        true        1
#define        false    0
#define        TRUE    1
#define        FALSE        0
2-4、函数的导入、导出
1、导出
(1)功能:将函数导出为文件,供其他PLC程序导入用。
(2)导出方式
a)可编辑:将源代码也导出,并保存为文件.再次导入后,可再次编辑
b)不可编辑:源代码不导出.再次导入后只可使用,无法编辑
2、导入
功能:导入已存在的函数功能块文件,供该PLC程序使用。