### 840D的PLC功能块FB2和FB3读写NC系统变量
#### 一、概述
在SINUMERIK 810D/840D数控系统中,为了实现PLC与NC(Numerical Control,数控系统)之间的数据交互,提供了专门的功能块FB2和FB3来读取和写入NC系统的内部变量。这些变量包括但不限于坐标轴的位置、R参数(用于存储数值的寄存器)、零点偏移等。所有可用的系统变量都在官方文档中进行了详尽的列举。
#### 二、FB2和FB3的功能及应用
**FB2**: 该功能块主要用于从NC系统读取特定的系统变量。
**FB3**: 这个功能块则用于向NC系统写入特定的系统变量。
通过这两个功能块,用户可以在PLC程序中动态地访问NC系统的内部状态,并根据需要对其进行修改,从而实现更为复杂和灵活的控制逻辑。
#### 三、使用步骤详解
1. **启动NC变量选择器(NCVariableSelector)**: NCVariableSelector是Siemens提供的工具,用于帮助用户选择需要读取或写入的NC系统变量。它通常包含在ToolBox中,用户可以单独安装。
2. **选择变量**: 用户可以通过分类浏览或者使用查找功能来定位所需的变量。例如,要读取Y轴的当前位置,可以选择SMA组下的`actToolbasePos[]`变量。
3. **创建数据块**: 在选中变量之后,用户需要指定数据块的编号,比如DB120。随后,通过NCVariableSelector生成相应的源文件,如test.awl。
4. **导入源文件到STEP 7**: 将生成的源文件导入到STEP 7项目中,并进行编译。编译完成后,将自动生成对应的DB数据块。
5. **编写PLC程序**: 使用FB2或FB3功能块编写PLC程序,具体操作如下:
- **调用FB2**: 例如,使用CALL指令调用FB2,并指定相关的输入参数。其中`Req`表示读取请求信号;`NumVar`表示需要读取的变量数量;`Addr1`到`Addr8`分别指定需要读取的变量名称;`Unit1`到`Unit8`指定通道号;`Column1`到`Column8`指定列号;`Line1`到`Line8`指定行号;`RD1`到`RD8`指定读取结果的存储位置;`Error`表示错误信号;`NDR`表示完成信号;`State`表示状态字。
- **调用FB3**: 虽然示例中没有详细描述,但其调用方式与FB2类似,只是功能上有所不同,主要是用于写入变量。
#### 四、注意事项与扩展应用
1. **是否必须使用FB2/FB3?**
- 实际上,除了FB2和FB3之外,还有其他多种方法可以实现PLC与NC之间的数据交换,例如使用PLC机床数据或公共交换区等。选择哪种方法取决于具体的应用需求和技术条件。
2. **选件功能的考虑**
- 对于某些特定的功能需求,如轴运动到某个区域时触发PLC响应,可以考虑使用软件档块(SoftwareCam)选件功能,这往往能提供更加便捷的设置方式。
3. **通过NC程序实现功能**
- 某些情况下,直接通过NC程序来实现对机床数据的修改可能会更为简单有效。例如,修改机床数据可以通过编写NC程序来完成,而无需经过PLC层。
FB2和FB3作为SINUMERIK 810D/840D数控系统中实现PLC与NC之间数据交换的重要工具,在实际应用中具有广泛的价值。通过对它们的合理使用,不仅可以提高系统的灵活性,还能增强系统的整体性能。然而,在设计控制系统时,还需要综合考虑多种因素,以选择最适合当前应用场景的技术方案。