西门子PLC如何在主程序,写入调用子程序的命令

西门子PLC如何在主程序,写入调用子程序的命令,第1张

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

M98子程序调用

该代码用来调用子程序,格式为M98 nnnn(nnnn是被调用的子程序名称)Lnn。子程序必须在程序列表内,被调用的子程序内必须包含M99 ,以返回主程序。Lnn为子程序调用次数,可包含在M98的行上,将在执行下一个程序块之前调用的nn次子程序。

当调用一个M98子程序时,控制器寻找处于启用状态的驱动盘,如果内存中不包含此子程序,系统将继续寻找处于启动状态的驱动盘(USB储存设备,硬盘驱动器等),如果控制器仍然无法找到子程序,将发出警报。

注意︰子程序为一个独立的程序(运行O00002调用一个独立的程序 (O00100))%

O00002;0

M98 P100L4 (调用 O00100 子程序 4 次);

M30;

%

%

O00100 (子程序);

M00;

M99 (返回主程序);

%

Q&AQ: 程序调用,子程序和主程序分开的话容易丢失,请问能放在一起吗?

A: 不妨试试M97局部子程序调用。

M97局部子程序调用

该代码用于调用同一程序内的行号 (N) 所引用的子程序。需要使用的P代码必须与同一程序内的行号(N)相匹配,该功能非常适用于简单的子程序调用,不需要单独建立新的程序。子程序必须以M99结束。M97块中的Lnn代码将重复子程序调用nn次。

注意︰子程序是主程序体的一部分,输入在M30之后

%

O00001;

M97 P100L4 (调用 N100 子程序);

M30;

N100 (子程序);

M00;

M99 (返回主程序);

版本 2

程序集 窗口程序集1

子程序 __启动窗口_按下某键, 逻辑型

参数 键代码, 整数型

参数 功能键状态, 整数型

如果真 (键代码 = #回车键)

  __启动窗口_被双击 (50, 50, 0)  ' 50,50是鼠标的位置

如果真结束

子程序 __启动窗口_被双击, 逻辑型

参数 横向位置, 整数型

参数 纵向位置, 整数型

参数 功能键状态, 整数型

如果真 (横向位置 ≠ 0)

  信息框 (“你双击了窗口”, 0, )

如果真结束

首先要看子程序有几个参数

有几个参数你就填几个被。

比如

我写了一个子程序 名字叫做 msgbox 参数有 标题 和 内容 两个

都是文本型

那么我在易语言中调用的方法就是:

msgbox(标题,内容)

调用子程序很简单的,主程序里加M98Pxxxx(xxxx为子程序的程序号),另外还要编一个程序为Oxxxx的程序,程序的结尾一定要以M99结尾加工运行主程序时执行到M98Pxxxx后就会自动调用Oxxxx程序,一直执行至遇到M99后会自动返回主程序的

如用G10座标偏移一次加工5个产品的主程序

以下是加工的主程序:

Oxxxx

G28 U0 W0

G10 P0 X0 Z0

M98 P(调用加工程序) 第一个零件

M1

G10 P0 X0 Z_(Z为一个总长)第二个零件

M98 P

M1

G10 P0 X0 Z_(Z为二个总长)第三个零件

M98 P

M1

G10 P0 X0 Z_(Z为三个总长)第四个零件

M98 P

M1

G10 P0 X0 Z_(Z为四个总长)第五个零件

M98 P

M1

G28 U0 W0

G10 P0 X0 Z0

M30

子程序格式:

O

T0101 M3 S2000

M99

以上就是关于西门子PLC如何在主程序,写入调用子程序的命令全部的内容,包括:西门子PLC如何在主程序,写入调用子程序的命令、数控车床子程序怎么调用、易语言:调用子程序"__启动窗口_被双击"时所传递的参数太少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10141582.html

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

发表评论

登录后才能评论

评论列表(0条)

保存