西门子S7-300CPU数据块存储常见问题

时间:2023-03-18来源:佚名

问题1:数据块的初始值有什么作用?
回答:
数据块的初始值仅对于一个数据块的"离线"组态有意义。如果用户离线创建了一个新的数据块或者在离线组态的过程中在数据块里创建了一个新的变量,如果用户不做任何修改,新建的变量会使用系统默认值作为初始值,如果用户为此变量指定了其它数值作为初始值,数据块将会多占用相应变量长度的Load memory。在此后的操作中(数据块的上传及下载),只要数据块的结构,变量的数据类型没有发生改变,变量的初始值都没有实际作用,只起到变量类型定义的作用。
如果用户不给此新建的变量指定实际值,初始值会被用作变量的实际值。

西门子S7-300CPU数据块存储常见问题

用户可以给变量指定实际值,初始值可以与实际值不同。

西门子S7-300CPU数据块存储常见问题

问题2:数据块的实际值有什么作用?
回答:
数据块中的每个变量都有自己的实际值,如果用户不自行指定,系统将使用初始值作为变量的实际值;如果用户自行指定变量的实际值,则变量的初始值与实际值可能不相同。

西门子S7-300CPU数据块存储常见问题

如果用户在data view 视图下,在菜单命令中执行Edit →initialize data block,数据块中所有变量的实际值都将被初始值覆盖(用户执行此操作需要格外谨慎,需要确认不再需要数据块中的实际值)。

西门子S7-300CPU数据块存储常见问题

问题3:数据块如何实现断电保持特性?
回答:
为了断电保存数据,S7-300CPU中的Work memory划分为两部分,其中一部分类型为RAM(断电丢失),一部分为NVRAM(断电保持),如果数据块为断电保持,则此数据块需要占用具备断电保持特性的Work memory部分。当CPU 经历POWER ON→POWER OFF→ POWER ON或者RESTART过程后,数据块中的数据不会丢失。
注意:
当用户在S7-300CPU 项目中插入新的数据块时,系统默认其属性为断电保持。
数据块断电保持是work memory 的特性,与Load memory(MMC) 无关。

问题4:具备断电保持特性的数据块何时会丢失当前值?
回答:
如下操作会导致数据块丢失当前值

• Memory RESET 操作(手动开关操作及STEP7 中菜单操作)
• CPU在没有MMC卡的情况下上电(实际是因为此情况导致了CPU执行Memory RESET操作)
• 插入损坏MMC卡/错误MMC卡的情况下上电(实际是因为此情况导致了CPU执行Memory RESET操作)
• CPU损坏
• 下载数据块,且离线数据块中的actual value 与当前数据块中的数值不同

注意:Memory RESET操作将删除标志位、S7 定时器和 S7 计数器地址区的值,而不管这些区域是否已定义为保持或非保持属性。对于停止/启动(STOP/RUN)操作模式或断电/上电(POWER OFF/ON ),如果标志位、S7 定时器和 S7 计数器地址区已定义为保持,则保持它们的数值;否则,这些区域的数值将丢失且被初始化为“0”。

问题5:如何使MMC卡中的数据块与Work memory中的数据块保持一致?
回答:
当用户第一次将数据块下载到CPU 后,如果用户程序及用户监控/修改操作对数据块未进行过任何修改,则MMC卡中的数据块与Work memory中的数据块内容是一致的(这种情况在实际应用中很少出现)。
一般情况下,用户程序及用户的监控/修改操作都会影响数据块的当前值,此数值位于Work memory中,这样MMC卡中的数据块有可能与Work memory中的数据块内容不一致。对于不同的数据块属性,此情况会有所不同,可分为3种:
1. 勾选了Un-linked 选项的数据块
此数据块只存储于MMC卡,不存在与Work memory数据一致问题
2. 勾选了Non-Retain选项的数据块
由于此类数据块断电不保持,所以在每次断电后,Work memory中数据块当前值丢失;CPU再上电后,MMC卡中数据块被复制到Work memory中,两者将保持数据一致。
3. 未勾选Non-Retain选项的数据块
由于此类数据块断电保持,所以在每次断电后,Work memory中数据块当前值保持;CPU再上电后,MMC卡中数据块有可能与Work memory中数据不一致。
解决办法:
1. 需要Work memory中数据块作为保留值:请参考问题11的操作
2. 需要MMC卡中数据块作为保留值:执行RESET 操作

问题6:数据块的“Non-Retain”“Un-linked”属性对于数据块的内存占用有何影响?
回答:
S7-300 CPU从版本V2.0.12开始,开始支持具备“Non-Retain”属性的数据块。S7-300 CPU中的Work memory划分为两部分,其中一部分类型为RAM(断电丢失),一部分为NVRAM(断电保持),有关 CPU 中可供保持数据块使用的主存储器空间信息,可参看手册“S7-300 CPU 31xC and CPU 31x, Technical Data”的第六章和第七章,条目 ID: 12996906。
数据块的属性对于数据块的内存占用影响情况请参考下表:

内存区域 Load memory Work memory Work memory
(Retentive )
数据块属性
Non-Retain不勾选(系统默认)
Non-Retain勾选
Un-linked

以CPU 315(6ES7-315-2EH13-0AB0, Firmware V2.6.7)为例,其Work memory 共256KB,其中可以断电保持的Work memory共128KB, 而Load memory 取决于所使用MMC的容量。用户可以下载的具备断电保持属性的数据块总量为128KB;如果用户还需要使用更多的数据块,可以新建数据块,并在其属性中勾选Non-Retain选项,则另外还可以下载128KB数据(如果考虑到用户程序还需要占用此部分的Work memory,所以实际使用中达不到此数值);如果用户还需要使用更多的数据块,可以新建数据块,并在其属性中勾选Un-linked 选项,则此数据块只存储于MMC中,用户可以使用SFC83/84 对其进行读写。

问题7:用户下载数据块时,其过程是什么样的?
回答:
以下列出了用户下载数据块时,3种常见过程
1. 数据块属性中勾选了Un-linked 选项

西门子S7-300CPU数据块存储常见问题

2. 数据块属性中未勾选Un-linked 选项,未勾选Non-Retain选项

西门子S7-300CPU数据块存储常见问题

Download
西门子S7-300CPU数据块存储常见问题

西门子S7-300CPU数据块存储常见问题





西门子S7-300CPU数据块存储常见问题


西门子S7-300CPU数据块存储常见问题

3. 数据块属性中未勾选Un-linked 选项,勾选Non-Retain选项

西门子S7-300CPU数据块存储常见问题

Download
西门子S7-300CPU数据块存储常见问题

西门子S7-300CPU数据块存储常见问题



西门子S7-300CPU数据块存储常见问题


西门子S7-300CPU数据块存储常见问题

问题8:用户使用STEP7监视/修改(monitor/modify)的数据块中的数值,位于什么存储区?
回答:
用户使用STEP7监视(monitor)功能时,读到的数值来自于CPU的Work memory。用户使用STEP7修改(modify)功能时,修改的是位于CPU的Work memory中的数据块的数值。
注意:使用monitor/modify 无法修改MMC卡中的initial value及Actual value
注意:使用monitor/modify 无法监控Un-linked类型数据块

西门子S7-300CPU数据块存储常见问题

问题9:用户使用STEP7中Upload Station to PG操作时,数据块来自于什么存储区?
回答:
当用户使用STEP7中Upload Station to PG操作时,数据块的Initial value来自于load memory中的Initial value;数据块的actual value来自于work memory中的actual value;

西门子S7-300CPU数据块存储常见问题

问题10:如何读出MMC中数据块的Actual value?
回答:
有时候用户需要将实时运行数据按照特定规律归档,即使CPU损坏或者CPU复位操作也不会造成这些数据丢失,这些数据可以定期(或根据用户程序编制需求)通过SFC84存储到MMC 卡上(不推荐使用Copy RAM to ROM功能,此操作需要CPU停机)。当用户需要将这些数据时,就需要将这些数据块的Actual value读出。用户无法通过使用STEP7中Upload Station to PG操作实现此功能。为了实现此功能,用户可以通过两种方法实现:

1. 使用西门子专用读卡器,通过菜单命令File → memory card →open 打开MMC文件夹,将其中的数据块复制到另一个S7 Block 文件夹中,则此文件夹中的数据块中的Actual value是来自于MMC中数据块的Actual value。
2. 使用SFC83,通过程序将MMC中数据块的Actual value写至某个数据块中,上载此数据块,则此数据块中的Actual value与MMC中数据块的Actual value相同(注意:仅仅是数值相同)

问题11:如何将CPU数据块中当前值作为参数保存到项目中?
回答:
建议用户为参数数据块新建一个S7 program文件夹,以方便日后的调试工作。

西门子S7-300CPU数据块存储常见问题

方法1步骤:
1. 打开原来项目中的数据块,在菜单中选择File → Open online,则打开了在线数据块,
2. 在菜单中选择File → Store Read-Only,在提示界面下,选择新建的S7 Promgram/Blocks文件夹。则此数据块被以只读的方式存储,用户可以监视此数据块,但无法在计算机上修改其Actual value。其属性为Block read-only。
3. 将此数据块下载到CPU中(完成对MMC卡的覆盖)。

西门子S7-300CPU数据块存储常见问题

缺点:备份数据块在STEP7 编辑环境下为只读属性,数据块与普通数据块操作不同,日后更改困难
优点:备份数据块在STEP7 编辑环境下为只读属性,不会被错误更改

方法2步骤:
1. 将在线的CPU中的数据块复制到新建的S7 program/Blocks文件夹中,
2. 将此数据块下载到CPU中(完成对MMC卡的覆盖)。
缺点:备份数据块没有变量名及注释,不便于识别
优点:备份数据块与普通数据块操作相同

方法3步骤:
1. 将在线的CPU中的数据块复制到新建的S7 program/Blocks文件夹中,
2. 在菜单中选择plc → Copy RAM to ROM(完成对MMC卡的覆盖)。
缺点:会导致CPU停机(Copy RAM to ROM操作),备份数据块没有变量名及注释,不便于识别,操作会影响所有的数据块,所有数据块load memory中的actual value都将被work memory 中的actual value覆盖。

问题12:如何使CPU数据块中当前值不被程序更改?
回答:
用户可以将数据块的DB is write-protected in the PLC属性勾选并下载。

西门子S7-300CPU数据块存储常见问题

问题13:STEP 7功能“Copy RAM to ROM”有何作用?
回答:
Copy RAM to ROM会把work memory 中的数据块数值写至MMC卡中数据快的 actual value 中。

问题14:使用SFC 82有何注意事项?
回答:
SFC 82只能生成 Non-Retain,UN-Linked ,read-only 类型的数据块
SFC 82可能需要多个扫描周期才可完成,触发调用SFC82后,需要把触发条件复位
SFC 82对MMC卡有写操作,MMC 仅允许进行 100,000 次写访问,超过此次数,MMC卡将损坏

问题15:使用SFC 83有何注意事项?
回答:
SFC 83可能需要多个扫描周期才可完成,触发调用SFC83后,需要把触发条件复位
SFC 83多用于读取UN-Linked类型的数据块

问题16:使用SFC 84有何注意事项?
回答:
SFC 84可能需要多个扫描周期才可完成,触发调用SFC84后,需要把触发条件复位
SFC 84对MMC卡有写操作,MMC 仅允许进行 100,000 次写访问,超过此次数,MMC卡将损坏
SFC 84多用于写UN-Linked类型的数据块,对于断电保持的数据块也可以进行写操作,但只有在CPU复位的情况下才可查看到SFC84最后一次写操作的数值。

参考例子:
例子1:
如果生成变量,并使用默认值,其源代码将不包含初始值

西门子S7-300CPU数据块存储常见问题

源代码:
DATA_BLOCK DB 6
TITLE =
VERSION : 0.1
STRUCT
test1 : INT ; //初始值为默认值时,都为此类格式
test2 : INT := 1234;
test3 : INT := 1234;
END_STRUCT ;
BEGIN
test1 := 0;
test2 := 1234;
test3 := 1234;
END_DATA_BLOCK

例子2:work memory中数据保持区接近被占用100%的情况,此时无法下载断电保持数据块,但可以下载“Non-Retain”、“Un-linked”数据块及程序。

西门子S7-300CPU数据块存储常见问题

    相关阅读

    软启动器12个故障代码

    软启动器常见故障问题的故障代码,参考如下: 1、故障代码Err01 故障类容:→断相;说明:主电路任意一相断相。 2、故障代码Err02 故障类容:→过电流;说明:超过额定电流12倍。 3、故...
    2022-11-26

    电焊机电流调到多少合适,根据焊条大小及焊接对象做调整

    2.5焊条电焊机电流大小应根据焊条的种类来定: 1、一般碳钢焊条焊接电流调到100A左右,不锈钢焊条稍低点。 2、焊方管2.5焊条电流: 60-80A电焊机利用正负两极在瞬间短路时产生的高温电...
    2023-01-09
    电焊机电流调到多少合适,根据焊条大小及焊接对象做调整

    电动车电池看参数的三种方法,轻松查看电动车电池型号

    新买的电动车电池是什么型号的,很多人并不是很清楚,而在需要换电池时搞不清楚型号就会很麻烦,那么电动车电池规格怎么,怎么来识别电动车电池的型号,与电工天下小编一起来...
    2022-11-30

    电动机的启动电流如何计算,电动机启动电流计算公式

    有关电动机启动电流的计算方法,三相电机启动电流瞬时是正常的多少倍,电动机的启动电流是额定电流 的多少,电动机 启动电流计算公式与实例,感兴趣的朋友参考下。 电动机启动...
    2022-11-22
    电动机的启动电流如何计算,电动机启动电流计算公式

    电焊机怎么调,电流与电压调整方法

    电焊机的调整方法,具体参考如下: 1、先把电流旋钮调到最小,把电压旋钮调到最大,试焊一下,不要动电压旋钮,逐步调大电流,直到能正常焊接时停上。 2、反过来,把电流旋钮先...
    2023-01-09
    电焊机怎么调,电流与电压调整方法

    插座发出滋滋滋的声音是什么原因

    首先最有可能的原因就是电源线与插座接线端子接触不牢固,而造成的虚接,进而产生电弧也就是我们俗称的电火花,就会发出的滋滋声音。 插座内由于质量问题,电源接线柱与插头触...
    2022-11-10
    插座发出滋滋滋的声音是什么原因

    【电力用户怎么分级,电力用户分类标准】

    【电力用户怎么分级,电力用户分类标准】 有网友咨询,电力用户怎么分级,针对分级的问题,电力用户分为一级用户至三级用户,那么电力用户分类标准是怎么样的,电力客户分级和...
    2022-12-10
    【电力用户怎么分级,电力用户分类标准】

    异步电动机正反转控制plc接线图及梯形图(图文)

    【 异步电动机 正反转控制plc 接线图及梯形图 】 用plc实现异步电动机的正反转控制,如何设计控制线路图,如何分配i/o,都是绘制plc接线图的关键,另外异步电动机正反转控制设计 过...
    2022-12-11
    异步电动机正反转控制plc接线图及梯形图(图文)

    网站栏目