本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。
以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。
本文简要介绍了在SINUMERIK ONE 中如何使用新增的NC变量表快速读写NC变量,并且详细阐述了基于NC变量的框架如何创建驱动变量表。最终实现在PLC侧快速读写驱动变量。
硬件 | ||||
工艺 | NCU1740 | NCU1750 | NCU1760 | PPU1740 |
车床 | ● | ● | ● | ● |
铣床 | ● | ● | ● | ● |
磨床 | ● | ● | ● | ● |
• SINUMERIK ONE CNC SW >=V6.13
备注:如果通过TIA portal调试840D sl(CNC SW>=V4.5.2),本文介绍的快速读写驱动变量的方法同样适用。
测试软件:TIA Portal V17
840D sl如果需要在PLC中读写NC与驱动变量,需要使用NC VAR Selector生成地址DB块,然后在PLC中通过地址索引读写这些变量,在SINUMERIK ONE NCU的NCK组件中新增了《可用的NC变量列表》,可以脱离NC VAR Selector直接读写NC变量。
使用方法如下:
1) 创建变量表
2)拖拽需要读写的NC变量,比如,机床轴坐标,直接添加到已创建的变量表中。
3) 变量配置,指定通道号与轴号。
4)创建PLC数据块
5)在PLC程序块中可以看到自动生成的数据块,在数据块中变量$AA_IM包含两部分内容:Token是变量索引地址,value是用于显示NC变量值的变量。
6)编写通过FB2读取机床轴坐标的程序,添加NC变量地址Token与Valve至FB2相应管脚。
7)下载PLC程序,在线监控。
SINUMERIK ONE的NC变量表可以方便快捷的读写NC变量,通过分析NC变量表发现NC变量的地址结构都是相同的,只是起始值赋值不同。
从上表还可以看出NC变量的索引地址是通过PLC数据类型创建的,进一步分析发现ONE的标准PLC数据类型中包含创建NC变量的PLC数据类型。
我们能不能按照这样的设计思路创建驱动变量表呢?答案是肯定的。
无论是NC变量还是驱动变量,变量索引地址都由以下8部分构成
名称 | 数据类型 | 注释 |
syntaxId | Byte | 句法ID |
areaAndUnit | Byte | 区域和单位 |
column | Word | 列 |
row | Word | 行 |
blockType | Byte | 数据块类型 |
numberOfRows | Byte | 行数 |
dataTypeCode | Byte | 数据类型代码 |
length | Byte | 数据类型长度 |
故此可以直接使用已经创建好的NC变量PLC数据类型,来创建驱动变量的PLC数据类型,为了避免混淆,需要修改驱动变量PLC数据类型的名称。
驱动变量的PLC数据类型变量由2部分构成
1)基本的变量地址PLC数据类型,通过它来索引变量对应的地址。
2)带变量值的PLC数据类型,它是由基本的变量地址PLC数据类型和变量值构成,其中变量值的类型包括Bool、DateAndTime、Dint、Int、Lreal、Real、Sint、String、UDInt、Uint、Uint(可以根据驱动变量的数据类型取舍)。
(a)带变量值的驱动变量地址构成
(b)带变量值的驱动地址变量PLC数据类型
为了更快捷的读写不同的驱动变量,可以在此基础上直接把驱动模块号的索引添加到带变量值的驱动变量PLC数据类型中。
如果变量是数组类型的,还需要增加行索引与数组变量值。
接下来使用上面已经创建好的基本驱动变量PLC数据类型创建驱动变量表的PLC数据类型。首先设计驱动变量表。
例如,电机温度变量R35可以创建为
注意,其中R35的索引地址需要通过NC VAR Selector生成地址变量,即Area No.为0。
在NC VAR Selector生成的地址中找到R35的变量地址,然后把变量地址拷贝到驱动变量表PLC数据类型中即可。
通过同样的方法,在驱动变量表中增加需要读写的驱动变量。
新建一个全局DB块,然后在DB块中创建基于驱动变量PLC数据类型的驱动数据,例如,驱动1。
使用DB块中元素的填充功能可以快速创建多个驱动的数据。
在PLC侧通过基本程序块FB2/ FB3读写驱动变量,使用时请注意以下事项:
a) FB2/FB3 支持多实例
b) 每次调用 FB2 /FB3都必须指定一个独立的、用户区域中的实例 DB。
c) 读写驱动专用变量时,FB2/FB3 通过 “Addr1” 至 “Addr8” 只能对一个驱动对象的变量进行定址。驱动对象必须已分配给机床轴。
d) 在读写任务中只允许读取或写入相同区域、通道或驱动对象的变量。
1) 在程序块中调用FB2
2) 把驱动数据块中的驱动数据拖拽至FB2的相应管脚
3) 下载程序,在线监控
4) 如果需要读取其它驱动变量,直接修改对应变量名称即可。
可以使用相同的方法通过FB3来写入驱动变量,这里不再详细叙述。
可以独立于NC VAR Selector(首次获取驱动地址变量除外)读写驱动变量
驱动变量PLC数据类型中增加驱动变量值变量,不必再创建其它存储区域存储驱动变量值
快速创建基于PLC数据类型的驱动变量数据块
便于多驱动变量的读取
通过在PLC数据类型增删驱动变量地址,驱动数据DB块同步增删驱动变量,避免重复操作
1. CN_ONE Virtual to Real Comm 0615, 03/2022
Qin Li Bin
2022.07.14
版本 | 日期 | 修改内容 |
V1.0 | 2022.07.14 |