• LM小型可编程控制器软件(基于CoDeSys)笔记二十八:错误3803


    1,程序写完之后发现提示3803错误

    2,我把这个全局变量删了会提示另外一个全局变量错误

    3,没有头绪,回到这个程序的前一个版本,一点点把后来写的程序加进去,写一点进去就全部编译一次,后来添加某个ton的时候,突然开始提示3808错误

    4,后来注意到一个地方,我在子程序,主程序里定义声明变量的时候,会占用一点内存,具体的可以在编译的时候看到,就是这个

    看着好像还比较多,但是每次定义一个新变量的时候,上一项数据就会增加1bytes,而且定义一个新的ton的时候,会一口气增加近20个比特。

    如果上面的比率超过百分百,那么就会出现3803错误

    5,去手册查到的解释如下:

    6,解决办法,检查一下程序,把没有用到的变量都删了,特别是ton型的变量

    新建变量时,系统可以自动定义。但当变量被删除时,定义语句不会自动删除,继续保留
    在编辑器中,因此要注意变量不能定义重复。可使用 工程 ”/“ 查看 ”/“ 未使用变量 命令查找
    到这些无用的变量声明。具体使用方法请参见 8.2.3 章节。

    7,把一些变量设置为保持类型变量,这个时候,就是第二排数据在变化了

    具体来看定义变量时的选项框:就是定义好变量后把后面的保持勾选上

    自动定义变量对话框的各项含义,如下所述:
    ¾ 类别:类型选择。各类型区别请参见表 4-4-3 ,如:希望定义的变量在所有的 POU 中都能
    使用,则定义为全局变量,选择类型 VAR_GLOBAL
    ¾ 名字:声明变量的名称,即标识符。关于变量命名的规则,请参见 4.4.1 章节。
    ¾ 类型:数据类型选择。可以直接在输入框中输入,也可以点击
    按钮,然后在弹出的对
    话框中选择数据类型。各类数据类型请参见 4.4.2 章节。
    ¾ 符号表:只有在 类 别 选 择 “VAR_GLOBAL” 时,符号表才可选。默认选项为
    “Global_Variables” 。当定义一个全局变量时,在 资源 选项卡中打开 全局变量 文件夹,
    可以看到 “Global_Variables” ,双击 “Global_Variables” ,刚定义的全局变量便显示在这里,
    如图 4-4-2 所示。
    ¾ 初始值:变量的初始值。这里可以填入一个与变量数据类型对应的常量,完成变量的初始
    化。
    ¾ 地址:定义变量的地址。
    ¾ 注释:变量的含义。

    保持型变量和常量?

    变量自动定义时,在自动定义对话框右下角有两个选项:常量和保持。当选择常量,则将
    该变量作为一个常量,程序中无法再改变其数值。当选择保持型变量时,表示将该变量设
    置为具有掉电保持功能,该变量存储在 R 存储区。
    保持型变量?
    在很多工程中,通常需要数据具有掉电保持功能,使 PLC 断电后数据不丢失。在定义变量时,
    可以直接定义变量为保持型变量,此时变量自动保存于 R 存储区,具有掉电保持功能。
    在自动定义时,在自动定义对话框的右下角,选择“保持”选项,变量就自动定义为保持型变
    量。在手动定义时,将变量定义在 VAR_RETAIN END_VAR 之间,也可以定义该变量为掉电保
    持变量。
    前面讲到存储区( 4.1 章节)时曾提到, M 区的部分地址( %MB300~%MB799 )同样具有掉电
    保持功能。将变量定义为保持型变量与将数据放入地址在 %MB300~%MB799 的存储区内,具有相
    同的效果。

  • 相关阅读:
    opencascade 布尔运算笔记
    【Qt之QMetaType】使用
    修改Qt源码支持DPI粒度到QWidget
    【06】VirtualService高级流量功能
    Optional小记
    Linux下通过service服务管理用户进程
    JAVA设计模式第七讲:设计模式在 Spring 源码中的应用
    分析2022年国内国际学校ib的分数
    云服务器CVM_云主机_云计算服务器_弹性云服务器-腾讯云
    el-table 多选回显,分页回显
  • 原文地址:https://blog.csdn.net/gutie_bartholomew/article/details/126254583