分类 Development 下的文章

使用虚拟环境进行Python开发有助于隔离项目的依赖,避免不同项目之间的库版本冲突。以下是如何创建和使用虚拟环境的详细步骤。

Python 3.3 及以上版本自带 venv 模块,可以直接使用。

使用 venv 创建虚拟环境

创建虚拟环境

在你的项目目录下,运行以下命令来创建一个虚拟环境,这将在项目目录下创建一个名为 myenv 的文件夹,其中包含虚拟环境的所有文件:

python -m venv myenv

激活虚拟环境

Windows:

myenv\Scripts\activate

macOS 和 Linux:

source myenv/bin/activate

安装依赖

在虚拟环境中,你可以使用 pip 来安装项目所需的库:

pip install requests

安装的库将只会影响当前虚拟环境,而不会影响系统的 Python 环境或其他项目。

冻结依赖

为了确保你的项目依赖可以在其他环境中重现,你可以使用以下命令将当前环境的依赖写入 requirements.txt 文件:

pip freeze > requirements.txt

requirements.txt 文件将包含所有当前环境中的安装包及其版本信息。

使用 requirements.txt 安装依赖

在新的环境中,你可以使用 requirements.txt 文件来安装所需的所有依赖:

pip install -r requirements.txt

退出虚拟环境

当你完成工作时,可以通过以下命令退出虚拟环境:

deactivate

使用虚拟环境进行Python开发可以有效地隔离项目依赖,避免版本冲突。通过创建和激活虚拟环境、安装依赖、冻结依赖并在新环境中重新安装依赖,可以确保你的项目在不同环境中具有一致的运行表现。


enum 类型的 dut 可以定义一组属性及其值,调用的时候可以方便的通过写其属性名称得到属性的值,也可以获取到属性本身的名称。

下面举一个例子说明:

{attribute 'qualified_only'}            // 必须先写类型名称再写属性名称 (例如 eColor.Red)
// {attribute 'strict'}                 //取消 'strict' 以允许转换 UDINT 数据类型
{attribute 'to_string'}                 // 运行字符串转换 (例如 TO_STRING(eColor.Red) = 'Red')
TYPE eColor :
(
    Red         := 16#FFFF0000,
    Green       := 16#FF00FF00,
    Blue        := 16#FF0000FF
    Yellow      := 16#FFFFFF00,
) UDINT;                                // 声明 UDINT 作为 int 整形类型
END_TYPE

// 定义一些变量
    ColorVar1   : eColor;
    ColorVar2   : eColor;
    ColorName   : STRING;
    ColorValue  : UDINT;

    ColorVar1 := eColor.Green;            // ColorVar1 = 16#FF00FF00
    ColorName := TO_STRING(ColorVar1);    // ColorName = 'Green';
    ColorValue := TO_UDINT(ColorVar1);    // ColorValue = 16#FF00FF00

    ColorVar2 := 16#FF00FF00;             // ColorVar2.Green
    ColorName := TO_STRING(ColorVar2);    // ColorName = 'Green';
    ColorValue := TO_UDINT(ColorVar2);    // ColorValue = 16#FF00FF00

    ColorVar1 := ColorVar2 OR eColor.Red; // 按位相与得到 Yellow=16#FFFFFF00
    ColorName := TO_STRING(ColorVar1);    // ColorName = 'Yellow';
    ColorValue := TO_UDINT(ColorVar1);    // ColorValue = 16#FFFFFF00

以上示例列举了常用的 enum 类型可进行的数据交互方式。

eColor.Green 可以获取enum类型属性的值,并可以赋值给其他对应 enum 实例
TO_STRING(ColorVar1) 可以转换获取 enum 实例当前值对应属性名称字符串


No source code available for this object

下载时出现此报警,原因是 task 任务中对 gou 的排序有问题,放在前面的 pou 中使用了后面 pou 才设定好的数据,需要重新排列 task 任务序列:
image.png

SMC_FB_CALLED_FROM_WRONG_TASK

mc_power mc_jog 等控制轴的功能块,一运行就报错 SMC_FB_CALLED_FROM_WRONG_TASK,可能是不同的 pou 放在了多个 task 任务中,循环中内部有了冲突,将所有的 pou 放在同一个 task 中就可以解决问题。



最近的工作中遇到使用带刀具的轨迹运动中,由于轨迹是通过1000多个离散点构成的,每个点之间距离很短,由于 sinumerik one 系统默认的线性计算精度是每毫米 1000 各单位,导致刀具轨迹报错提示可能有碰撞危险。通过提高系统计算精度可以解决此问题。

相关系统变量:

  • 通用机床数据 10200 线性位置的计算精度
  • 通用机床数据 10210 角位置的计算精度

sinumerik one 及 840D sl 系统以上参数默认值为 1000,828D 系统默认值为 1000000。