您的位置 首页 > 数码极客

〈信捷plc如何写入程序〉信捷plc编程指令表!

信捷PLC的C语言函数功能块,编译时编程软件时会自动嵌入操作权限的指令,以防止用户程序越权访问某些功能。

如果不希望出现这些指令,可以用C语言的预处理机制绕过,原理很简单:

1、因编程软件检测是否存在特定签名的函数,可用条件为否的预处理指令包含所需函数;

2、因编程软件对所有特定签名的函数都进行处理,可用预处理宏替换函数名称。

如果绕过了权限机制的保护,请自行确保所写代码对系统的安全风险。

以下为示例代码:

源程序(普通写法): void T_QINC ( WORD W , BIT B ) { (*(uint64_t*)W)++; } 处理后: void T_QINC ( WORD W, BIT B ) { //以下5条汇编指令用于清除CONTROL寄存器的特权位 asm("PUSH {R0}"); asm("MRS R0,CONTROL"); asm("ORR R0,R0,#0x1"); asm("MSR CONTROL,R0"); asm("POP {R0}"); //begin user code (*(uint64_t*)W)++; //end user code //以下汇编指令用于获取特权 asm("svc 0x01"); } //--------------- 源程序(绕过特权): #if 0 void T_QINC ( WORD W, BIT B ) {} #endif #define MAIN T_QINC void MAIN ( WORD W , BIT B ) { (*(uint64_t*)W)++; } 处理后: void T_QINC ( INT16S * W , INT32U B ) { //begin user code (*(uint64_t*)W)++; //end user code }

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“信捷plc如何写入程序,信捷plc编程指令表,信捷plc编程入门视频教程,信捷plc指令表,信捷plc编程教程”边界阅读