c语言mcr
A. MATLAB中M文件的编写与调试的过程是什么
1. 安装编译器:选择合适的编译器进行安装,如VC++6.0。
2. 设置编译器:在MATLAB命令行中输入mbuild –setup以及mex –setup,选择安装的C编译器。
3. 调用编译器:使用MATLAB的GUI平台deploytool实现完全调用。也可以使用mcc -m filaname命令,其中filaname是要转换成exe的m文件。
4. 安装MCRInstaller:安装matlab path\toolbox\compiler\deploy\win32目录下的MCRInstaller。
5. 参数传递:在M文件中处理参数传递,例如将数值转换为字符串。
MATLAB产品族可应用于以下领域:
- 数值分析
- 数值和符号计算
- 工程与科学绘图
- 控制系统的设计与仿真
- 数字图像处理技术
- 数字信号处理技术
- 通信系统设计与仿真
- 财务与金融工程
MATLAB的优势:
1. 友好的工作平台和编程环境:MATLAB提供了一系列工具,方便用户使用MATLAB的函数和文件,包括MATLAB桌面、命令窗口、编辑器和调试器等。
2. 简单易用的程序语言:Matlab是一种高级的矩阵/阵列语言,包含控制语句、函数、数据结构等,易于使用。
3. 强大的科学计算机数据处理能力:MATLAB包含大量计算算法,方便实现各种计算功能。
4. 出色的图形处理功能:MATLAB具有方便的数据可视化功能,可以绘制和处理二维和三维图形。
5. 应用广泛的模块集合工具箱:MATLAB开发了针对不同领域的工具箱,方便用户学习和应用。
6. 实用的程序接口和发布平台:MATLAB允许将自己的程序转换为独立于MATLAB的C和C++代码,支持与外部应用程序的交互。
7. 应用软件开发(包括用户界面):MATLAB提供了丰富的功能,方便用户进行软件开发和界面设计。
B. PLC编程 (指令语句)
PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。
1、梯形图语言(LD)
梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。
梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
2、指令表语言(IL)
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。图3就是与图2PLC梯形图对应的指令表。
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
3、功能模块图语言(FBD)
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。图4是对应图1交流异步电动机直接启动的功能模块图编程语言的表达方式。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
4、 顺序功能流程图语言(SFC)
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
5、结构化文本语言(ST)
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。比如,SIMATIC STEP7 MicroWIN V3.2。
在PLC控制系统设计中,要求设计人员不但对PLC的硬件性能了解外,也要了解PLC对编程语言支持的种类。
C. c璇瑷闂棰 濡备綍浠巘xt鏂囨湰鍒ゆ柇璇诲彇瀛楃︿覆鏄钖︽槸鏁板瓧瀛楃︿覆锛屾彁鍙栨暟瀛楀瓧绗︿覆骞朵缭瀛树负txt鏂囦欢
#include<stdio.h>
#include<stdlib.h>
#definemcr__file_name_max_length256/*鏂囦欢钖嶆渶澶х殑闀垮害*/
intmain(intargc,char*argv)
{
charchr1_source_file_name[mcr__file_name_max_length+1];/*婧愭枃浠璺寰勫拰鏂囦欢钖*/
charchr1_new_file_name[mcr__file_name_max_length+1];/*淇濆瓨鏁板瓧镄勬柊鏂囦欢钖*/
charchr_read;/*涓存椂璇诲彇鍑烘潵镄勫瓧绗*/
/*鎹㈣屾爣璁帮纴濡傛灉鍊间负1琛ㄧず鏂版枃浠跺唴瀹归渶瑕佹崲琛岋纴涓0琛ㄧず涓嶉渶瑕佹崲琛*/
unsignedcharuchr_next_line=0;
unsignedcharuchr_number=0;/*濡傛灉鏁板瓧涓娆¢兘娌″嚭鐜拌繃鍒欎负0锛屽惁鍒欎负1*/
FILE*p_file_source;/*鎸囧悜婧愭枃浠剁殑鏂囦欢鎸囬拡*/
FILE*p_file_new;/*鎸囧悜鏂版枃浠剁殑鏂囦欢鎸囬拡*/
/*銮峰彇鐩镙囨枃浠跺拰鏂版枃浠剁殑钖岖О銆傚傛灉鏂囦欢鍜岀▼搴忓湪钖屼竴涓鏂囦欢澶涓嬶纴
鍒欎笉闇瑕佽緭鍏ュ畬鏁磋矾寰*/
printf("璇疯緭鍏ョ洰镙囨枃浠跺畬鏁寸殑璺寰勫强鏂囦欢钖嶏细");
scanf("%s",chr1_source_file_name);
printf("璇疯緭鍏ユ柊鏂囦欢镄勫畬鏁磋矾寰勫强鏂囦欢钖嶏细");
scanf("%s",chr1_new_file_name);
p_file_source=fopen(chr1_source_file_name,"r");
if(p_file_source)/*濡傛灉鎴愬姛镓揿紑鏂囦欢*/
{
/*鍒涘缓涓涓鏂版枃浠剁敤浜庝缭瀛樻暟瀛瀛楃︿覆*/
p_file_new=fopen(chr1_new_file_name,"w");
if(p_file_new==NULL)/*濡傛灉鏂版枃浠跺垱寤哄け璐*/
{
fclose(p_file_source);/*鍏抽棴鍏埚墠镓揿紑镄勬簮鏂囦欢*/
exit(0);/*阃鍑虹▼搴*/
}
/*璇诲彇婧愭枃浠朵腑镄勫唴瀹*/
while(!feof(p_file_source))
{
chr_read=fgetc(p_file_source);
if('0'<=chr_read&&chr_read<='9')/*濡傛灉璇诲彇鍒扮殑瀛楃︽槸鏁板瓧*/
{
uchr_number=1;/*镙囨槑锛屾暟瀛楀嚭鐜拌繃*/
if(uchr_next_line)/*濡傛灉鎹㈣屾爣璁颁负鐪*/
{
fputc(' ',p_file_new);/*鎹㈣*/
uchr_next_line=0;/*灏嗘崲琛屾爣璁伴吨缃涓0*/
}
fputc(chr_read,p_file_new);/*灏呜诲彇鍒扮殑鏁板瓧瀛楃︿缭瀛桦埌鏂版枃浠*/
}
else/*濡傛灉璇诲彇鍒扮殑瀛楃︿笉鏄鏁板瓧瀛楃*/
{/*灏嗘崲琛屾爣璁拌剧疆涓1锛岄偅涔堜笅涓娆″啓鏂囦欢镞讹纴灏嗕细鎹㈣*/
if(uchr_number)
{
uchr_next_line=1;
}
}
}
fclose(p_file_source);
fclose(p_file_new);
}
return1;
}
杩愯岀粨鏋滃傚浘镓绀猴细