18602118379
西门子PLC模块6ES7340-1CH02-0AE0
西门子: 模块
1000:
保内: 原装
报价: 700.00元/件
最小起订: 1
有效期至: 长期有效
发布时间: 2022-10-12 17:00
浏览次数: 187
手机号: 18602118379
电话: 18602118379
在线咨询: 点击这里给我发消息
18602118379
详细信息

西门子PLC模块6ES7340-1CH02-0AE0


为保证系统稳定运行,系统CPU应避免长时间满负荷运作,应用程序CPU占用不宜过高。客户需要在调试阶段监测应用程序各个进程线程占用情况,对占用过高的进程线程进行优化。因CE自身不带进程线程系统占用查看工具,我们增加了AppHelper助手工具方便客户使用。

在之前的技术文章《CE应用程序助手简介》中简单介绍过英创AppHelper应用程序助手,本文将详细介绍AppHelper的使用方法。

AppHelper查看方法

客户在自制底板上只要引出了网络,USBOTG,DEBUG调试串口,或板子其它串口任意之一便可以查看AppHelper信息。

网络方式

通过telnet登录上板子,运行命令sysinfo,即可获得AppHelper打印的进程线程信息

截图20221007160700.p

PID表示为process进程。TID表示为上面进程下的thread线程。

ID号

即进程ID值或线程ID值。

占用情况

显示格式为 K n% U m% total%

n值为该进程或线程在Kernel系统层的占用

m值为该进程或线程在User用户层的占用

total值为总占用,它应当等于n+m的和

进程下各个线程total占用和应当等于进程的total占用

名称

进程名即EXE的名称,线程默认没**称,下一节会介绍如何给线程命名,从而能在AppHelper中显示出来。

进程及线程监视说明

AppHelper会打印系统下所有的进程的CPU占用信息。

只有在NandFlash目录下的exe生成的进程会额外打印出它下面所有线程的CPU占用信息。

默认情况下,生成的线程只有ID号,没**称,如果线程较多会不便于查看。我们可以通过简单代码给线程命名。

以光盘里的串口例程SPT_HEX为例:

添加一个结构体的定义

typedef struct _THREAD_INDEX

{截图20221007155935.p

DWORDdwSize;

DWORDdwThreadID;

TCHARszThreadName[32];

_THREAD_INDEX*pNext;

}THREAD_INDEX;

在创建线程后给线程命名

这里把串口接收线程命名为"CommRecvTread"

hRecvThread = CreateThread(0, 0, CommRecvTread, this, 0, &m_dwTID);

HANDLE hHLP;

DWORD dwLen;

hHLP = CreateFile(L"HLP1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

THREAD_INDEXthreadIndex;

wsprintf(threadIndex.szThreadName, L"CommRecvTread");

threadIndex.dwThreadID = m_dwTID;

threadIndex.dwSize = sizeof(THREAD_INDEX);

WriteFile(hHLP, &threadIndex, sizeof(THREAD_INDEX), &dwLen, NULL);

CloseHandle(hHLP);

在结束线程后取消命名

线程结束后应当手动将命名取消掉,避免不必要的显示错误,设置线程名为空,即可取消原命名。

wsprintf(threadIndex.szThreadName, L"");

命名线程后再使用AppHelper查看,启动接收线程后,就可以看到CommRecvTread这个线程,另外个没有命名的线程为SerialPort程序的主线程

202207281244519172844.jpg


相关产品
相关西门子产品
联系方式
  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 电话:18602118379
  • 手机:18602118379
  • 联系人:杜丕琳
产品分类
最新发布
企业新闻