技术论坛

 • 产品分类
 • 咱工程师的故事
 • 培训与认证答疑专区
 • 服务合作伙伴专区

 献给试图缩减程序大小的朋友

返回主题列表
作者 主题
阳春节拍
侠客

经验值:944
发帖数:177
精华帖:2
楼主    2024-07-30 20:23:28
主题:献给试图缩减程序大小的朋友 精华帖 

版主给个精呗。


plc程序中每个关键字和数据都要占用程序空间(就是编译后给出的程序块大小,2.8版的sr/t60是最大30kb),那么具体会占用多少呢?下面对数据占用的程序空间做个汇总,没了解过的朋友请给个赞。


占用0字节:只有ac区的4个地址;

占用1字节:位地址:所有M区,Q、I和SM区的63.7位以下,T、C、S位;字节常数;

占用2字节:位地址:所有L区,Q、I和SM的64.0到511.7之间,V区的511.7位以下;字常数,所有地址区的非位数据(包括字节、字、双字等数据类型),V区4095以下地址的所有非位数据;

占用4字节:位地址:V、Q、I和SM的512.0以上位;双字常数,V区的4096以上非位数据;

阳春节拍
侠客

经验值:944
发帖数:177
精华帖:2
33楼    2024-08-20 09:44:41
精华帖  主题:回复:献给试图缩减程序大小的朋友

扩展下哈。

大家也都看到了ac区是不占用程序空间的,因此要多用。但基于ac区的特点,ac区不适合跨周期甚至跨子程序使用。当然如果你有每段功能程序前都标注下修改了ac区那些地址,那使用上还是很方便的。这里有个建议,ac3的高字一直保持为V区指针,字或字节数据随便用哪个ac都行,双字数据尽量使用ac0。

关于位数据,显然使用M区是最优的,建议将M区当做跨周期暂存位,I或Q的30到64之间系统一定是不用的可用做临时暂存位(类似子程序的out变量,先赋值后使用)

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。