博图v15指令ret怎么用_西门子博途S7-1200时钟功能指令的使用

本文详细介绍了如何在博图V15中使用西门子S7-1200的时钟功能指令,包括读取和设置系统/本地时钟、设置时区以及运行时间计数器的操作。通过实例展示了编程步骤,并提到了夏令时切换时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时钟功能指令的使用

在TIA 软件中,可以通过相应的时钟功能指令去实现对S7-1200 CPU的系统/本地时钟的操作。

  • 读取S7-1200CPU的系统/本地时钟。
  • 设置S7-1200CPU的系统/本地时钟。
  • 设置S7-1200CPU的时区。
  • 设置、启动、停止和读取S7-1200CPU 的 32 位运行小时计数器。

本文将详细介绍上述各个指令的使用。

系统/本地时间区别

系统时间(System Time):格林威治标准时间。

本地时间(Local Time):根据S7-1200CPU所处时区设置的本地标准时间。

读取S7-1200CPU的系统/本地时钟

1. 读取S7-1200CPU的系统/本地时钟指令的调用。

b9537c5eb531e0eb32af2ca0f98de563.png

图1. 调用读取系统/本地时间指令

2.读取S7-1200CPU的系统/本地时钟指令的使用。

在DB块中创建数据类型为DTL(时间和日期)的变量。

1c39aa93ef090f8a30f3a9ea41f46e34.png

图2. 在数据块中创建DTL变量。

在OB1中编程,读出的系统/本地时间通过输出管脚“OUT”放入数据块相应的变量中。

8224009dc08a7fd3fdf8a0a803c80257.png

图3. 编程读出系统/本地时间。

从上图可以看出,读出的系统时间和本地时间相差8小时,这是因为S7-1200CPU所设置的时区与格林威治时间相差8小时。

输出管脚“RET_VAL”为指令状态输出,具体含义参见指令帮助。

设置S7-1200CPU的系统/本地时钟

1.设置S7-1200CPU的系统/本地时钟指令的调用。

534c2049db7c36c5eea087ee7adb2b05.png

图4. 调用设置系统/本地时间指令

2.设置S7-1200CPU的系统/本地时钟指令的使用。

在DB块中创建数据类型为DTL(时间和日期)的变量。

c6ead8b6debae1f5f1b184b9d454b8a7.png

图5. 在数据块中创建DTL变量。

通过触摸屏或者强制变量的方式给DTL变量写入所想要设置的时间日期数值。

在OB1中编程,将DTL变量填写在输入管脚“IN”(设置系统时间指令)/“LOCTIME”(设置本地时间指令)。

06cc1a8da9132b800d8021fed7fd777a.png

图6. 编程设置系统/本地时间。

如果“EN”端填写的变量信号状态为“TRUE”,则执行设置系统/本地时间指令。将用要设置的时间覆盖 CPU 时钟的系统/本地时间。

输出管脚“RET_VAL”为指令状态输出,具体含义参见指令帮助。

3.设置本地时间指令在夏令时与标准时间切换时的使用。

  • 从标准时间切换到夏令时。
  • 假设切换时间为凌晨 2:00,然后将时间向前移动一小时。 这意味着在 02:00:00:000000000 AM 和 02:59:59:999999999 AM 之间没有时间。如果“LOCTIME”指定的时间在此期间,将产生错误代码 W#16#8089。
  • DST 参数与此无关。
  • 从夏令时切换到标准时间。
  • 假设切换时间为凌晨 3:00,然后将时间向后移动一小时。 这意味着在 02:00:00:000000000 AM 和 02:59:59:999999999 AM 之间有两小时。
  • 因此对于“LOCTIME”中所有介于 02:00:00:000000000 AM 和 02:59:59:999999999 AM 的时间,需要声明该时间是在时间切换之前还是之后。DST 参数的用法如下:
  • DST=TRUE 时,时间是两个小时中的第一个,即仍然在夏令时中。
  • DST=FALSE 时,时间是两个小时中的第二个,即位于标准时间。
  • 对于 LOCTIME 中所有位于双数小时之外的时间,DST 参数与此无关。

设置S7-1200CPU的时区

1.设置S7-1200CPU时区指令的调用。

54689e3496314c68b38b50d0953a6676.png

图7.调用设置时区指令

2.设置S7-1200CPU时区指令的使用。

在DB块中创建数据类型“TimeTransformationRule”的变量,需要在数据类型一栏中直接输入“TimeTransformationRule”。

fb994112d7374033b927e491f99c2038.png

图8.在数据块中创建数据类型“TimeTransformationRule”的变量

此参数变量的具体含义参见指令帮助。

在OB1中编程,将“TimeTransformationRule”变量填写在输入管脚“Time Zone”,并通过触摸屏或者强制变量的方式给“TimeTransformationRule”变量写入所想要设置的时区相关参数 。

148dfbd44ae273ebf654a755cb3cc27c.png

图9.编程设置CPU的时区

从上图可以看出,将CPU的时区设置为UTC-11:00,即本地时间与系统时间之间的时差为-660分钟。

输出管脚显示指令的完成、故障,状态等信息,具体含义参见指令帮助。

运行时间定时器的使用

1.运行时间定时器指令的调用。

30746866234dd79a8ebd2c33f7b86a6a.png

图10.调用运行时间定时器指令

2.运行时间定时器指令的使用。

使用该指令对 S7-1200CPU 的 32 位运行小时计数器执行设置、启动、停止和读取操作。

61ff5c557543b3d4af7b5f5a8bc053e4.png

图11.运行时间定时器指令的管脚含义

在OB1中编程,输入参数 MODE的值设置为“5”,如果EN输入端的信号状态为“TRUE”,则执行“RTM”指令。CPU 的运行小时计数器设置为PV中的数值并启动。在启动运行小时计数器后,将输入参数 MODE的值设置为“0”。因此,“RTM”指令读取运行小时计数器的当前值并写入输出管脚CV。输出参数 CQ指示运行小时计数器正在运行。输出参数 RET_VAL指示处理正在运行,且无错误。

561c171d005be80199202c38582666e0.png

图12.编程使用运行时间定时器指令

常见问题

为什么 CPU 系统时钟比实际时间快一小时?

使用 STEP 7 V13 SP1 组态 S7-1200 CPU, 设备组态属性-常规-时间,默认的本地时间时区是UTC+01:00,即使更改时区为UTC+08:00,但仍然默认勾选"激活夏令时"。如下图13 所示:

虽然国内没有使用夏令时,时区选择UTC+08:00,读取的时钟仍然会比实际时钟快一小时。如要使系统时间与实际时间一致,取消勾选“激活夏令时",重新下载项目即可。

8a74a3062df38d3cc7606400eef170c3.png

图13. 夏令时

### 基于SPWM的三相永磁同步电机矢量控制模型 #### SPWM技术简介 正弦脉宽调制(Sinusoidal Pulse Width Modulation, SPWM)是一种广泛应用于电力电子变换中的调制方法。通过改变开关器件的工作周期,可以实现对输出波形的有效调节。相比于空间矢量脉宽调制(Space Vector PWM),SPWM具有更简单的算法结构,在某些应用场景下仍被优先考虑。 #### 控制策略概述 对于三相永磁同步电机(Permanent Magnet Synchronous Motor, PMSM),采用矢量控制(Vector Control)能够解耦电动机内部电磁关系,使得其动态性能更加优越。具体来说,该控制系统通常包含两个主要部分: - **速度环路**:负责接收外部给定的目标转速并与反馈的实际转速进行比较,计算出所需的电磁转矩指令- **电流环路**:依据前一环节产生的转矩需求调整各相绕组上的电流大小,确保电机按照预期的方式运转[^1]。 #### MATLAB/Simulink建模仿真流程 为了构建上述系统的仿真环境,可以在MATLAB环境下利用Simulink工具箱完成如下操作: 1. 创建新的空白项目文件并导入必要的库函数; 2. 构造完整的电路拓扑,包括但不限于电源、滤波电感/电容、IGBT功率模块以及负载电阻等元件; 3. 添加专门设计好的SPWM发生器组件,用于生成合适的门极触发信号供给逆变桥臂使用; 4. 实施双闭环控制器的设计——即分别针对d轴和q轴方向设置独立的比例积分(PI)调节单元; 5. 配置数据采集接口以便实时监测重要变量的变化趋势,并绘制相应的形化报表辅助分析结果解释。 ```matlab % 定义参数 R = 0.5; % Stator resistance (ohm) L_d = 0.02; L_q = 0.02; % d-axis and q-axis inductance (H) psi_f = 0.577; % Flux linkage of PM (Wb) % 初始化条件 omega_ref = pi * 60 / 30; % Reference angular velocity (rad/s), assuming 60 rpm i_d_ref = 0; i_q_ref = 0; % PI controller gains for speed loop Kp_speed = 1; Ki_speed = 1e-3; % PI controller gains for current loops Kp_id = 10; Ki_id = 1e-2; Kp_iq = 10; Ki_iq = 1e-2; % Time span setup tspan = linspace(0, 0.1, 1000); % Simulation time from t=0 to t=0.1s with 1000 points % Solve ODE using ode45 solver [t,y] = ode45(@(t,x) pmsm_spwm(t,x,R,L_d,L_q,psi_f,Kp_speed,Ki_speed,i_d_ref,i_q_ref,... Kp_id,Ki_id,Kp_iq,Ki_iq,omega_ref), ... tspan,[0; 0; 0; 0]); plot(t,y(:,1),'-', 'LineWidth', 1.5); xlabel('Time(s)'); ylabel('\theta_{mech}(rad)'); title('Mechanical Angle Response'); grid on; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值