导读:
STEP 7-MicroWIN SMART西门子的PLC软件,PUT/GET 指令的编程可以使用PUT/GET 向导以简化编程步骤。该向导最多允许组态16 项独立PUT/GET 操作,并生成代码块来协调这些操作。
CPU1 (192.168.2.1 ) 把VB100~107数据传输到CPU2(192.168.2.2 ) VB0~7
CPU1 (192.168.2.1 ) 把VB100~107数据读取到CPU2(192.168.2.2 ) VB0~7
一、PUT/GET 向导编程步骤PLC
1、STEP7 Micro/WIN SMART 在“工具”菜单的“向导”区域单击“Get/Put”按钮,启动PUT/GET 向导(见图1)。
图1 启动
2、在弹出的“Get/Put”向导界面中添加操作步骤名称并添加注释(见图2)。
图2
a. 点击“添加”按钮,添加PUT/GET操作
b. 为每个操作创建名称并添加注释
3、定义PUT/GET操作(见图 3、图 4)。
图3 定义PUT 操作
a. 选择操作类型,PUT或 GET
b. 通信数据长度
c. 定义远程 CPU的 IP 地址
d. 本地 CPU 的通信区域和起始地址
e. 远程 CPU 的通信区域和起始地址
图4 定义GET 操作
a. 选择操作类型,PUT或 GET
b. 通信数据长度
c. 定义远程 CPU的 IP 地址
d. 本地 CPU 的通信区域和起始地址
e. 远程 CPU 的通信区域和起始地址
4、定义PUT/GET向导存储器地址分配(见图5)。
图5 分配存储器地址
注意:点击“建议”按钮向导会自动分配存储器地址。需要确保程序中已经占用的地址、PUT/GET向导中使用的通信区域与不能存储器分配的地址重复,否则将导致程序不能正常工作。
5、在 图 5中点击“生成”按钮将自动生成网络读写指令以及符号表。只需用在主程序中调用向导所生成的网络读写指令即可(见图6)。
图6 主程序中调用向导生成的网络读写指令
二、程序调试PLC
把主动端程序下载到CPU1中(192.168.2.1),被动端CPU2(192.168.2.2)不需要写程序,把空程序下载到CPU2中即可,打开状态图表监控和写入数据(见图7)。
图7 程序监控与写入
三、PUT/GET常见问题PLC
1、S7-200SMART CPU以太网通信端口支持哪些通信协议,是否支持TCP、UDP和ISOonTCP等开放式用户通信或ModbusTCP通信?
S7-200 SMARTCPU以太网通信端口从V2.2固件支持TCP、UDP和ISOon TCP等开放式用户通信及ModbusTCP通信。
2、S7-200SMART CPU标准型和紧凑型产品是否都支持GET/PUT通信?
S7-200 SMART CPU 全系列产品都支持GET/PUT通信。但是固件版本低于V2.0的产品不支持GET/PUT通信,CPU固件可以通过Micro SD卡进行升级。
3、S7-200SMART CPU在同一时刻能否对同一个远程CPU调用多于8个GET/PUT指令?
同一时刻对同一个远程CPU可以调用多于8 个GET/PUT指令。同一时刻对同一个远程CPU 调用多个GET/PUT指令只会占用1个GET/PUT主动连接资源,而不是8个主动连接资源。
4、为什么有些第三方触摸屏不能与STEP7-Micro/WIN SMART 软件同时访问S7-200SMART CPU?
虽然S7-200SMART CPU 以太网端口具有25个连接资源,但是其中只有1个连接资源(PG连接资源)用于与STEP7-Micro/WIN SMART 软件的通信。如果第三方触摸屏与S7-200SMART CPU的连接也使用PG连接资源,就会造成第三方触摸屏不能与STEP7-Micro/WIN SMART 软件同时访问S7-200SMART CPU。
5、GET/PUT指令可以传送的最大用户数据是多少?
GET 指令可从远程站点读取最大222个字节的用户数据,PUT指令可向远程站点写入最大212个字节的用户数据;大数据量的用户数据通信可以调用多个GET/PUT指令来实现。采用GET/PUT向导时每个操作的读写用户数据的最大个数为200 个字节。
6、GET/PUT通信错误有哪些可能原因?
GET/PUT 指令TABLE参数表的第一个字节提供了“错误代码”,用于排查错误原因。GET/PUT指令故障可能原因:
(1)S7-200 SMART CPU 固件版本较低,通信双方 CPU 固件都需要 V2.0 及以上版本。
(2)超出了本地 CPU 主动连接资源限制或远程 CPU 无可用的被动连接资源。
(3)GET/PUT 指令 TABLE 参数定义错误。
(4)通信站点之间的物理连接出错。
7、如何获取S7通信的连接状态以及错误代码?
详细信息可以参考:如何判断S7通信中断并获取错误代码