西门子ET200模块(授权)经销商
下图是博途的STEP7 V12帮助中的指令概览。可以看出,S7-1200和S7-1500的指令是兼容的,S7-1200的指令是S7-1500的指令的子集。可以认为S7-1200是精简版的S7-1500。如果暂时没有条件使用S7-1500,可以先使用S7-1200,为今后使用S7-1500打下基础。
1.可用的编程语言
S7-1500和S7-1200都能使用梯形图(LAD)、功能块图(FBD)和结构化控制语言(SCL)语言。为了和S7-300/400兼容,S7-1500还可以使用STL语言。
2.指令的比较
1)S7-1500的基本指令比S7-1200多9条指令。
2)扩展指令中只有S7-1500有PROFIenergy(使用 PROFINET 进行能源管理)指令。此外S7-1500比S7-1200多11条指令。
3)“技术"类指令S7-1500比S7-1200多5条高速计数器指令。
4)“通信"类指令S7-1200比S7-1500多3条发送电子邮件的指令。
S7-1200的间接寻址需要通过数据块中的数组来实现。指令FieldRead通过索引(又称为下标)变量从数组中读取数值,指令FieldWrite 通过索引变量向数组中写数值,使用这两条指令可以实现间接寻址。
索引变量是间接寻址中的地址指针,它的值是要读写的数组元素的索引值。地址指针就像收音机调台的指针,改变指针的位置,指针指向不同电台。改变地址指针中的索引值,指针“指向"数组不同的元素。间接寻址的优点是可以在程序处理期间,通过改变指针的值动态地修改指令中的地址。
首先生成一个名为“数据块1"的全局数据块DB2,在数据块中生成名为“数组1"的数组Array[1..10] of Int,其元素的数据类型为Int。
这两条指令没有列入指令列表和指令列表,编程时将收藏夹中的空逻辑框插入程序,点击其中红色的“??",打开下拉式列表框,可以看到列表框底部的指令FieldWrite或FieldRead。点击生成的指令框中的“???",用列表设置要写入或读取的数据类型为Int(见下图)。两条指令的参数MEMBER的实参必须是数组的个元素“数据块1".数组1[1]。
指令的输入参数索引值“INDEX"是要读写的数组中的元素的下标,数据类型为DINT(双整数)。参数“VALUE"是要写入数组元素的值或要读取的数组元素的值。