浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子S120连接电缆6SL3060-4AF30-0AA0

西门子S120连接电缆6SL3060-4AF30-0AA0

s7-300以太网通信模板cp343-1(订货号6gk7343-1ex30-0xe0)既可以支持profinet中的 io controller功能又可以支持 io device功能。设置io device的方法如图1所示。但是,有的时候会出现io device选项是灰色,不能激活,见图2中1号红框。

图1 激活cp343-1 io device属性

图2 io device选项不能激活

解答:

这是因为cp343-1的配置插入了一个profinet-io-system(在图2中的2号红框),这就设置了cp343-1作为io controller。由于cp343-1(订货号6gk7343-1ex30-0xe0)不能同时支持 io controller和io device功能,所以io device选项是灰色,此时它只能作为io controller使用。要想激活io device功能,参照图3将profinet-io-system 断开,就可以了。或者,使用鼠标右键点中profinet-io-system, 在弹出对话框中直接选择删除也可以。同样,如果先激活了io device功能,那么cp343-1就不能插入profinet-io-system作为io controller使用,见图4。

图3 断开profinet io system

图4 不能插入profinet io system

1、“启用外设输出”功能简介

在系统的调试阶段,我们经常会用到对单个设备进行接线检查或调试的功能。如果cpu工作在run模式,那么可以通过在强制变量表中对输出写强制值的方式实现,,但当cpu工作在stop模式时,如何修改外围输出点的输出状态呢?

在step7变量表中的“启用外设输出 ”(enable peripheral outputs)功能可以将特定值分配给处于 stop 模式下的 cpu 的各个外设输出,可以用于设备的接线检查或调试。

2、“启用外设输出”的使用条件

在step7中的“启用外设输出”功能只有在满足以下几个条件时才有效:

cpu处于stop工作模式

只能对外设输出地址区,即必须是带 ”p” 的 q 地址区地址进行修改

已经建立与 cpu 的在线连接

3、实验环境:

软件:step7 v5.5 sp2

硬件:cpu315-2pn/dp,sm374(仿真模块,组态为8di/8do),组态如图1所示。

图 1

4、操作步骤

1)在项目中新建一个监控变量表,或打开一个已经存在的监控变量表。

2)根据实际需要,在变量表中添加要启动外设输出的地址,本例中添加了“pqb0”(注意,外设地址区不能按位寻址,只能按字节、字或双字寻址)

图2

3)建立与的在线连接,并通过cpu的模式转换开关(或通过菜单命令)将cpu的工作模式转换为stop模式。

4)选择变量表窗口中的“variable”菜单,可以看到这时的” enable peripheral outputs”菜单已经有效。在菜单中选中此功能,并在弹出的对话框中选择“yes”,即可激活“启用外设输出”的功能。

图3

5)在变量表的修改值列中输入相应的修改值(这里将pqb0的修改值设置为b#16#ff),并在快捷菜单中选择“active modify value”,则实际的输出点状态将被修改为设定值(可以看到这时的sm374模块的8个输出点指示灯全部被点亮)。

图4

5、“启用外设输出”的取消

可以通过以下几种方式取消“启用外设输出”功能:

通过菜单取消激活“启用外设输出”功能

将step7转到离线模式

直接通过”esc”键退出

注意,功能取消后不能再恢复,需要重新启用。

经常有用户咨询fb的接口变量类型in_out、stat、temp在使用上有何区别,以下通过一个简单的例子进行说明。运用fb块编程计算公式:(a+b) * c = d,在程序中需要通过一个中间变量(例如其变量名定义为“temp_value”)传递“a”和“b”相加的结果,然后再乘以“c”得到*终结果“d”;将中间变量“temp_value”分别定义为in_out、stat或temp类型后做如下测试。

首先创建fb1,在in接口类型中新建a、b、c 三个变量,数据类型int;在out接口类型中新建d 变量,数据类型int;在ob1中调用fb1,并生成对应的背景db块db1。

情形一,将中间变量“temp_value”定义为in_out类型时,接口定义及程序如图1:

图1 中间变量“temp_value”定义为in_out类型

下载到cpu中执行程序监控,在调用fb1的接口参数处和背景db块中都可以监控到变量“a”和“b”相加的中间结果“temp_value”,如图2所示。

图2 中间变量“temp_value”定义为in_out时的在线数据

情形二,将中间变量“temp_value”定义为stat类型时,接口定义及程序如图3:

图3 中间变量“temp_value”定义为stat类型

下载到cpu中执行程序监控,仅能在其背景db块中监控到变量“a”和“b”相加的中间结果“temp_value”的值,而在调用fb1的接口参数处无该中间变量,如图4所示。

图4 中间变量“temp_value”定义为stat时的在线数据

情形三,将中间变量“temp_value”定义为temp类型时,接口定义及程序如图5:

图5 中间变量“temp_value”定义为temp类型

下载到cpu中执行程序监控,既不能在其背景db块中监控到变量“a”和“b”相加的中间结果“temp_value”的值,也不能在调用fb1的接口参数处看到该中间变量,如图6所示。

图6 中间变量“temp_value”定义为temp时的在线数据

对于同一个中间变量,在fb中定义为不同的参数类型时,其接口参数和对应的背景数据块的显示都不尽相同。所以在不同的需求下可自行定义中间变量的类型,以满足不同的需求。西门子创新工业之道是“知其道,用其妙”,编程也不例外,知“fb接口类型”之道,用其妙


展开全文
优质商家推荐 拨打电话