三菱plc读取程序时没有主程序下载选项

三菱plc读取程序时没有主程序下载选项,第1张

是程序加密了。解决方法:枣李在这程序中新建登陆关键字和口令就可以了。三菱PLC是三菱电机在大连生产的主册岩并力产品,采用一类可编程的存储器,用于其内部存储州迹程序,执行逻辑运算、顺序控制、定时、计数与算术 *** 作等。

个人感觉你说的第二种比较好,比较可靠。(如果你用第一种情况,电脑死机了怎么办??我们单位的电脑装上后反映就比较迟钝)\x0d\x0a\x0d\x0a还有NETR是通过指定端口从网络读取信息(最多16个字节){结合绝此银你的情况就是从PC向PLC读取信息}\x0d\x0a\x0d\x0a还有NETW是通过指定端口向网络写信息(最多16个字节){结合你的情况就是从PLC向PC发送信息}\x0d\x0a\x0d\x0a具体方法:\x0d\x0a选择菜单命令工具(T)>指令向导_?缓笱≡?NETR/NETW;\x0d\x0a1指定您需要的网络 *** 作数目\x0d\x0a2指定端口号和子程序名称\x0d\x0a3指定网络 *** 作\x0d\x0a4分配V存储区\x0d\x0a5生成代码\x0d\x0a为了便于进行连接在网络中的PLC之间的数据交换,S7-200支持网络读(NETR)和网络写(NETW)指令。NETR指令从远程PLC中的指定地址读取配置好的一定数量的数据。NETW指令向远程PLC中的指定地址写入配置好的一定数扒拿量的数据。NETR\x0d\x0a和NETW指令 *** 作由数据表中的前七个字节控制。表中的一个数值是读取/写入数据长度,可以规定1至16个字节。因此数据表最大可达23个字节。\x0d\x0a\x0d\x0a注释:在使用HSC向导之前,程序必须被编译,且处于符号编址模式。如果您尚未编译程序,向导在HSC配置过程开始时会提示您编译程序。\x0d\x0a向导将向您询问初始化选项,然后为指定配置生成程序代码和数据块代码。从第一个屏幕选择NETR/NETW后,向导向您询问下列信息:\x0d\x0a\x0d\x0a步骤1指定您需要的网络 *** 作数目\x0d\x0a\x0d\x0a注释:如果项目包含使用STEP7Micro/WIN3.2版建立的现有NETR/NETW配置,您必须在继续执行步骤1之前选择编辑其中一个现有配置或建立一个新配置。\x0d\x0a\x0d\x0a可使用NETR/NETW指令向导,简化网络 *** 作配置。向导将向您询问初始化选项,并根据您的选择生成完整的配置。向导允许您配置多达24项独立的网络 *** 作,并生成代码协调这些 *** 作。\x0d\x0a\x0d\x0a步骤2指定端口号和子程序名称\x0d\x0a\x0d\x0a注释:项目可能已经包含一个NETR/NETW向导配置。所有以前建立的配置均被自动载入向导。向导会提示您完成以下两个步骤之一:\x0d\x0a\x0d\x0a?选择编辑现有配置,方法是点击“下一步>”。\x0d\x0a\x0d\x0a?选择从项目中删除现有配置,方法是选择“删除”复选框,并点击“完成”并宴。\x0d\x0a\x0d\x0a如果不存在以前的配置,向导会询问以下信息:\x0d\x0a\x0d\x0a1.PLC必须被设为PPI主站模式才能进行通信。您要指定通信将通过哪一个PLC端口进行。\x0d\x0a\x0d\x0a2.向导建立一个用于执行具体网络 *** 作的参数化子程序。向导还为子程序指定一个默认名称。您可以编辑默认名称。\x0d\x0a\x0d\x0a步骤3指定网络 *** 作\x0d\x0a\x0d\x0a对于每项网络 *** 作,您需要提供下列信息:\x0d\x0a\x0d\x0a1.指定 *** 作是NETR还是NETW。\x0d\x0a\x0d\x0a2.指定从远程PLC(NETR)读取的数据字节数或向远程PLC(NETW)写入的数据字节数。\x0d\x0a\x0d\x0a3.指定您希望用于通信的远程PLC网络地址。\x0d\x0a\x0d\x0a4.如果您在配置NETR,指定以下内容:\x0d\x0a\x0d\x0a-数据存储在本地PLC中的位置。有效 *** 作数:VB、IB、QB、MB、LB。\x0d\x0a-从远程PLC读取数据的位置。有效 *** 作数:VB、IB、QB、MB、LB。\x0d\x0a\x0d\x0a5.如果您在配置NETW,指定以下内容:\x0d\x0a\x0d\x0a-数据存储在本地PLC中的位置。有效 *** 作数:VB、IB、QB、MB、LB。\x0d\x0a\x0d\x0a-向远程PLC写入数据的位置。有效 *** 作数:VB、IB、QB、MB、LB。\x0d\x0a\x0d\x0a步骤4分配V存储区\x0d\x0a\x0d\x0a对于您配置的每一项网络 *** 作,要求有12个字节的V存储区。您指定可放置配置的V存储区起始地址。向导会自动为您建议一个地址,但您可以编辑该地址。请注意,如果您使用重叠地址,向导在显示一则警告后,允许您进入下一步。\x0d\x0a\x0d\x0a注释:在NETR *** 作中,请确认将用于存储数据的变量地址没有与分配给向导配置的存储区地址重叠。\x0d\x0a\x0d\x0a步骤5生成程序代码\x0d\x0a\x0d\x0a回答这些询问后,点击“完成”,S7-200指令向导将为您指定的网络 *** 作生成代码。由向导建立的子程序成为项目的一部分。要在程序中使能网络通信,需要在主程序块中调用执行子程序(NET_EXE)。每次扫描周期时,使用SM0.0调用该子程序。这样会启动配置网络 *** 作执行。为每项网络 *** 作建立的数据处理子程序会在适当时间被自动调用。

ORG 0000H

LJMP MAIN

ORG 0100H主程序地址

MAIN: JNB P1.0,P10 哪个键按下,显示哪个波形

JNB P1.1,P11

JNB P1.2,P12

JNB P1.3,P13

LJMP MAIN 没有键按下返回主程序循环

P10: MOV R7,#00H 方波波形,R7为特征码,放00,表示方波

LCALL SQU 调用方波波形函数

LJMP MAIN 调用完返回主程序循环

P11: MOV R7,#01H 01表示SAW波

LCALL SAW

LJMP MAIN

P12: MOV R7,#02H

LCALL TRI

LJMP MAIN

P13: MOV R7,#03H

LCALL SIN

LJMP MAIN

SQU: JNB P1.1,N1 方波函数,如果有其他键按下

JNB P1.2,N2 退出程序

JNB P1.3,N3

LJMP SSQU 没有键按下,到SSQU函数产生方波

N1: MOV R7,#01H 哪个键按下就在R7中记下特征做桥码

LJMP TC0

N2: MOV R7,#02H

LJMP TC0

N3: MOV R7,#03H

LJMP TC0

SSQU: CJNE R7,#00H,TC0R7不为0退出

MOV R0,#00H R0中放00

MOV DPTR,#7FFFH 这个应该是DAC0832的地址

K00: MOV A,#0FFH A中放FF,高缺灶电平

MOVX @DPTR,A A到0832转换

MOV P0,#0FFH 这一句不怎么懂,感觉可以去掉

MOV P2,#0FFH 值P2输入方纯扮猛式,P2是通过拨码按钮改

MOV A,P2 变数值,P2越大,波形周期越小

CPL A

MOV R3,A

L00: DEC R3

CJNE R3,#255,L00 这个循环改变周期

INC R0

INC R0

CJNE R0,#254,K00高电平波循环127次

MOV R0,#00H

K01: MOV A,#00H低电平,跟高电平差不多

MOVX @DPTR,A

MOV P0,#00H

MOV P2,#0FFH

MOV A,P2

CPL A

MOV R3,A

L01: DEC R3

CJNE R3,#255,L01

INC R0

INC R0

CJNE R0,#254,K01

LJMP SQU 显示完一个波形,回到方波函数开始,判断有无其他按键

TC0: RET返回主函数

SAW: JNB P1.0,N4 判断有无其他按键,同方波

JNB P1.2,N5

JNB P1.3,N6

LJMP SSAW

N4: MOV R7,#00H

LJMP TC1

N5: MOV R7,#02H

LJMP TC1

N6: MOV R7,#03H

LJMP TC1

SSAW: CJNE R7,#01H,TC1 特征码不是01 退出

MOV R0,#0FFH RO中放即将输出的值

MOV DPTR,#7FFFH

K10: MOV A,R0 锯齿波的每个值

MOVX @DPTR,A 输出

MOV P0,R0

MOV P2,#0FFH 通过P2改变周期

MOV A,P2

CPL A

MOV R3,A

L10: DEC R3

CJNE R3,#255,L10

INC R0 通过R0加1 来显示锯齿波的斜坡

CJNE R0,#255,K10 RO不等于255,循环锯齿波的每个值

LJMP SAW 等于255,完成一个锯齿波周期,回锯齿波开始

TC1: RET 退出

TRI: JNB P1.0,N7 三角波,类似于两个相反的锯齿波

JNB P1.1,N8

JNB P1.3,N9

LJMP TTRI

N7: MOV R7,#00H

LJMP TC2

N8: MOV R7,#01H

LJMP TC2

N9: MOV R7,#03H

LJMP TC2

TTRI: CJNE R7,#02H,TC2

MOV R0,#00H

MOV DPTR,#7FFFH

K20: MOV A,R0

MOVX @DPTR,A

MOV P0,R0

MOV P2,#0FFH

MOV A,P2

CPL A

MOV R3,A

L20: DEC R3

CJNE R3,#255,L20

INC R0

INC R0

CJNE R0,#254,K20

K21: MOV A,R0

MOVX @DPTR,A

MOV P0,R0

MOV P2,#0FFH

MOV A,P2

CPL A

MOV R3,A

L21: DEC R3

CJNE R3,#255,L21

DEC R0

DEC R0

CJNE R0,#0,K21

LJMP TRI

TC2: RET

SIN: JNB P1.0,N10正弦波,是通过存储在代码区的一个数

JNB P1.1,N11组来显示值的

JNB P1.2,N12

LJMP SSIN

N10: MOV R7,#00H

LJMP TC3

N11: MOV R7,#01H

LJMP TC3

N12: MOV R7,#02H

LJMP TC3

SSIN: CJNE R7,#03H,TC3

MOV R0,#00H

MOV DPTR,#7FFFH

K30: MOV A,R0

MOV DPTR,#TAB 数组的地址

MOVC A,@A+DPTR 把第R0个数放到A中

MOV DPTR,#7FFFH

MOVX @DPTR,A输出A

MOV P0,A

INC R0 RO加1

MOV P2,#0FFH 周期

MOV A,P2

CPL A

MOV R3,A

L30: DEC R3

CJNE R3,#255,L30

CJNE R0,#255,K30不等于255表示一个周期内,跳到K30

LJMP SIN 等于表示显示完一个周期,到SIN开始

TC3: RET 退出

TAB: DB定义正弦函数的各个值

看了你的图和你的程序,感觉你的图画得简单了一点,特别是0832地址,控制信号都没接,看起来还在调试,建议P2口做地址总线,这样,编程比较方便,你可以把P3口做周期.或者把P1口的其他口做控制总线,这样要对0832时序比较熟悉才行.

我平时是用C开发的,很少用汇编,如果有什么错误,可以共同探讨.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12320641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存