西门子模块总代理商-中山市
- 供应商
- 上海兆维智控科技有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 联系电话
- 15558811727
- 全国服务热线
- 15558811727
- 经理
- 岳玉林
- 所在地
- 上海市奉贤区环城西路3111弄300号2幢1层
- 更新时间
- 2025-03-05 08:18
双相脉冲输入的加/减计数 在该计数模式下,有两路脉冲输入端,一路为加计数输入端,另一路为减计数输入端。双相脉冲输入的加/减计数说明如图 6-26 所示,以高速计 数器 hsc0 为例,当其工作模式为 6 时,它采用i0.0 端子作为加计数脉 冲输入端,i0.1 为减计数脉冲输入端,smd42用于写入计数预置值。这几年都做工业产品了,基本就没弄过民用,时间近的就是2014年的一次,用的是logo!0ba6,还有几台西门子sirius系列的接触器。
当时是接的石油大学的一个项目。应用背景是这样的,滨州无棣等地区有很多小区的变压器容量不足,平时居民用电高峰期电压过低,容易烧坏电视、冰箱等用电器。所以,滨州供电所找到石油大学,研究出一个低成本的升压方案。
控制的核心器件是一台升压变压器和一个logo!控制器,变压器为特殊定做,多抽头输出。
变压器原理图:
思路挺简单,就是利用logo!检测供电线路上的电压,供电线路用电压变送器取电压后,经过精密滤波、整流,与基准比较后,输出稳定的电压值。logo!检测电压低于某个阈值时,接通上一级升压输出,高于某个阈值时,接通下一级降压输出,主要由模拟量偏差值触发器实现回差的设置,升压电压一共分为5级投切。为了保护变压器,在每组投切输出时,用互锁电路断开其他等级的电压输出端。
logo!接线图:
主电路原理图:
logo!程序截图:
该设备在进行实地调试后,能够达到预期效果,可以及时进行升降压的切换。经过爬杆、测试等一系列艰苦的工作后,具体参数已经摸透,出厂时设置好升降压参数即可直接进行实际使用。
1.功能(fc)简介
1)功能(fc)是用户编写的程序块。功能是一种“不带内存”的逻辑块。属于fc的临时变量保存在本地数据堆栈中。执行fc时,该数据将丢失。为保存该数据,功能也可使用共享数据块。由于fc本身没有内存,因此,必须始终给它指定实际参数。不能给fc的本地数据分配初始值。
2)fc里有一个局域变量表和块参数。局域变量表里有:in(输入参数)、out(输出参数)、in_out(输入/输出参数)、temp(临时数据)、return(返回值retval)。in(输入参数)将数据传递到被调用的块中进行处理。out(输出参数)是将结果传递到调用的块中。in_out(输入/输出参数)将数据传递到被调用的块中,在被调用的块中处理数据后,再将被调用的块中发送的结果存储在相同的变量中。temp(临时数据)是块的本地数据,并且在处理块时将其存储在本地数据堆栈。关闭并完成处理后,临时数据就变得不再可访问。return包含返回值ret_val。
2.功能(fc)的应用
功能(fc)类似于c语言中的子程序,用户可以将具有相同控制过程的程序编写在fc中,然后在主程序ob1中调用。功能的应用并不复杂,先建立一个工程,再在管理器界面中选中“块”,接着单击菜单栏的“插入”→“s7块”→“功能”,即可插入一个空的功能。
单边无组态通信方式只在一方编写通信程序,即客户端和服务器端的访问模式。编写程序的一方为客户端,另一方为服务器端。当s7-200/300/400进行单边无组态通信时s7-300/400既可作为客户端也可以作为服务器端,但s7-200只能作为服务器端。
【例6-1】有两台设备,分别由一台cpu 314c-2dp和一台cpu 226cn控制,从设备1上的cpu 314c-2dp发出启/停控制命令,设备2的cpu 226cn收到命令后,对设备2进行启停控制,同时设备1上的cpu 314c-2dp监控设备2的运行状态。
将设备1上的cpu 314c-2dp作为客户端,客户端的mpi地址为2,将设备2上的cpu 226cn作为服务器端,服务器端的mpi地址为3。
(1)主要软硬件配置
①1套step7 v5.4 sp4 hf3;
②1台cpu 314c-2dp;
③1台cpu 226cn;
④1台em277;
⑤1根pc/mpi适配器(或者cp5611卡);
⑥1根mpi电缆(含两个网络总线连接器);
⑦1套step7-micro/win v4.0 sp7.
mpi通信硬件配置如图6-1所示,plc接线如图6-2所示。
图6-1 mpi通信硬件配置
图6-2 plc接线
从图6-1可以看出s7-200系列plc与s7-300系列plc间的mpi通信有两种配置方案。方案1只要将mpi网络电缆(含两个网络总线连接器)连接在s7-300系列plc的mpi接口和s7-200系列plc的编程口上即可,而方案2却需要另加一个em277模块,显然成本多一些,但若s7-200系列plc的编程接口不够用时,方案2是可以选择的配置方案。
(2)硬件组态
s7-200系列plc与s7-300系列plc间的mpi通信只能采用无组态通信,无组态通信指通信无须组态,完成通信任务,只需要编写程序即可。只要用到s7-300系列plc,硬件组态还是不可缺少的,这点读者必须清楚。
①新建工程并插入站点。新建工程,命名为“6-1”,再插入站点,重命名为“master”,如图6-3所示,双击“硬件”,打开硬件组态界面。
图6-3 新建工程并插入站点
②组态客户端硬件。先插入导轨,再插入cpu模块,如图6-4所示,双击“cpu314c-2dp”,打开mpi通信参数设置界面,单击“属性”按钮,如图6-5所示。
图6-4 组态客户端硬件
③设置客户端的mpi通信参数。先选定mpi的通信波特率为187.5kbps,再选定客户端的mpi地址为“2”,再单击“确定”按钮,如图6-6所示。后编译保存和下载硬件组态。
图6-5 打开mpi通信参数设置界面
图6-6 设置客户端的mpi通信参数
④打开系统块。完成以上步骤后,s7-300的硬件组态完成,但还必须设置s7-200的通信参数。先打开step7-micro/win,选定工具条中的“系统块”按钮,并双击之,如图6-7所示。
⑤设置服务器端的mpi通信参数。先将用于mpi通信的接口(本例为port0)的地址设置成“3”,一定不能设定为“2”,再将波特率设定为“187.5kbps”,这个数值与s7-300的波特率必须相等,后单击“确认”按钮,如图6-8所示。这一步不少初学者容易忽略,其实这一步非常关键,因为各站的波特率必须相等,这是一个基本原则。系统块设置完成后,还要将其下载到s7-200中,否则通信是不能建立的。
图6-7 打开系统块
图6-8 设置服务器端的mpi通信参数
【关键点】硬件组态时,s7-200和s7-300的波特率设置值应相等,此外s7-300的硬件组态和s7-200的系统块必须下载到相应的plc中才能起作用。
(3)相关指令介绍
x_put (sfc68)是发送数据的指令,通过sfc68 (x_put),将数据写入不在同一个本地s7站中的通信伙伴。在通信伙伴上没有相应系统功能块。在通过req=1调用sfc68之后,激活写作业。此后,可以继续调用sfc68,直到busy=0指示接收到应答为止。
必须要确保由sd参数(在发送cpu上)定义的发送区和由var addr参数(在通信伙伴上)定义的接收区长度相同。sd的数据类型还必须和var addr的数据类型相匹配。x put (sfc68)指令的输入和输出的含义见表6-1。
表6-1 x_put (sfc68)指令格式
lad 输入/输出 说 明 数据类型
en 使能 bool
req 发送请求 bool
cont 作业结束之后是否“继续”保持与对方的连接 bool
dest_id 对方的mpi地址 word
var_addr 对方接收的数据存储区 any
sd 本机要发送的数据区 any
ret_val 返回数值(如错误值) int
busy 发送是否完成 bool
x_get (sfc67)是接收数据的指令,通过sfc67 (x_get),可以从本地s7站以外的通信伙伴中读取数据。在通信伙伴上没有相应系统功能块。在通过req=i调用sfc67之后,激活该作业。此后,可以继续调用sfc6'7,直到busy-o指示数据接收为止。然后,ret_ val便包含了以字节为单位的、己接收的数据块的长度。
必须要确保由rd参数定义的接收区(在接收cpu上)至少和由var_addr参数定义的要读取的区域(在通信伙伴上)一样大。rd的数据类型还必须和var_addr的数据类型相匹配。x_get (sfc67)指令的输入和输出的含义见表6-2。
表6-2 x_get (sfc67)指令格式
req 接受请求 bool
var_addr 对方的数据区 any
rd 读取到本机的数据区 any
busy 接受是否完成 bool
(4)程序编写
x_put (sfc68)发送数据的指令和x_get (sfc67)接收数据的指令是系统功能,也就是系统预先定义的功能,只要将“库”展开,再展开“standard library(标准库)”,选定“x_put”或者“x_get”,再双击之,“x_put”或者“x_get”就自动在网络中指定的位置弹出,如图6-9所示。
客户端的程序如图6-10所示,服务器端并不需要编写程序。
图6-9 x_put和x_get指令的位置
图6-10 主站程序
【关键点】本例客户端地址为“2”,服务器端的地址为“3”,因此硬件配置采用方案l时,必须将“ppi口”的地址设定为“3”。而采用方案2时,必须将em277的地址设定为“3”,设定完成后,还要将em277断电,新设定的地址才能起作用,方案2不用设置波特率。指令“x_put”的参数sd和var_addr的数据类型可以根据实际情况确定,但在同一程序中数据类型必须一致。