
OPN #DB_NR 打开#DB_NR这个DB块号,#DB_NR是个DB类型的数据。这里是在DB寄存器中载入了DB号。
L #DB_ADR 载入DB_ADR这个变量。具体类型请看输入数据,应该是INT或者是DINT类型的。不过DINT右移7位可能出现负数或者丢位。
SLD 7 右移动七位,相当于乘以128
LAR1 放入到AR1地址寄存器。
L #AI_COUNT 放入变量AI_COUNT,也就是放入循环初始值
lp1: T #anzahl_loop 传出到anzahl_loop,这是循环计数值。IP1是循环跳转地址。
L DBW [AR1,P#00] 放入地址为DBW#DB_ADR128的地址,地址单位为位。
例如,如果传入数据为0,那么就是放入DBW0开始的的字,如果传入数据为1,就是放入DBW16开始的字(因为DB编号以字节为单位,所以,1128/8=16,如果是2则为32)这里比较绕。 T #zs_pew 传送到变量#zs_pew
SLD 3 右移三位(乘以8,也就是寻址B)
T #zs_pew 传送到#zs_pew
L IW [#zs_pew] 载入经过变换为地址的IW#zs_pew
ITD int转换DINT(整数变成长整数)
DTR DINT转换REAL(长整数转为浮点数)
T #zs 传送到#zs
就解读到这里,下面的请自己根据语句表的规范解读
L DBD [AR1,P#20]
T #scale_low
L DBD [AR1,P#60]
T #scale_high
L #scale_high
L #scale_low
-R
L 2764800e+004
/R
L #zs
R
L #scale_low
+R
T DBD [AR1,P#100]
L IW [#zs_pew]
T #act
SET
= DBX [AR1,P#140]
= DBX [AR1,P#141]
= DBX [AR1,P#142]
L -3455
L #act
>I
R DBX [AR1,P#140]
JC end
L 31100
>I
R DBX [AR1,P#141]
end: ON DBX [AR1,P#140]
ON DBX [AR1,P#141]
R DBX [AR1,P#142]
A DBX [AR1,P#142]
JC IO
L 0000000e+000
T DBD [AR1,P#100]
IO: +AR1 P#160
L #anzahl_loop
LOOP lp1
打开程序编辑窗口LAD/FBD/STL,将要进行保护的程序块生成转换为源代码文件:通过选择菜单 File—>Generate source 生成;
2
对生产的源文件理论上可以随意命名,可以用中文名字,但最好用英文或汉语拼音,这样基本并不会出现莫名奇妙的故障。并且最好和FC块的名字相同,便于查找。
3
按确认后d出对话框,在此对话框中,选择需要保护的FC块,每次只能选择一个FC块。
4
在LAD/FBD/STL 窗口中关闭程序块,并在SIMATIC Manager项目管理窗口的source文件夹中打开上一步所生成的source文件; 在程序块的声明部分,VERSION行下面的一行中输入” KNOW_HOW_PROTECT”
5
存盘并编译该source文件:File—FileàSave—FileàCompile,编译完成后进行保存,至此完成了程序块的保护工作。大家可以看到原来的FC块的图标上有一个锁了。
END
注意事项
编译后系统会自己生成源文件,这个文件最好不要删除(删除后不影响使用,但要解除保护比较麻烦)。
你是否询问step7和监控plc程序不一致原因是什么?该原因如下:
1、错误的上传或下载:如果在上传或下载过程中出现错误,则可以导致plc实际执行的程序与Step7程序不一致。
2、程序修改后未编译:如果在修改程序后未对其进行编译,则plc执行的程序将不会更新。
3、plc储存器值错误:如果plc储存器的值与Step7程序中的应该不同,则可能导致plc实际执行的程序与Step7程序不一致。
以上就是关于step 7程序解读(s7——400) 哪位好心的人给我解读一下程序,最好有每一步实现了什么 ,万分感谢全部的内容,包括:step 7程序解读(s7——400) 哪位好心的人给我解读一下程序,最好有每一步实现了什么 ,万分感谢、求解一段step7 程序、step7和plc程序不一致监控等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)