西门子模块6ES7223-1BM22-0XA8诚信经营
logo! 0ba7的网络通讯功能,必须通过logo! soft comfort v7.0软件实现。首先通过软件为logo! 0ba7模块分配连接,如图1
图1
设置目标模块的ip地址(此处设置的和面板设置的一致),右击以太网连接出现“添加连接”,如图2。s7连接是基于客户端和服务器的一种通讯方式,本例中192.168.0.16作为服务器(即logo的ip);192.168.0.15(ip设置,)作为客户端。
图2
在192.168.0.16侧,在生成的“连接1” 中设置为服务器。如图3,“连接1”本地tsap默认20.00开始(tsap设定范围请看帮助),并且不可更改;远程tsap设置和通讯对方的本地一致,本例中20.00(复制前边的tsap的20,手敲不好使);填写对方的ip地址,本例中对方ip 192.168.0.15。
图3
在192.168.0.15侧,在生成的“连接1” 中设置为客户端,如图4。“连接1”本地tsap默认20.00开始(tsap设定范围请看帮助),并且不可更改;远程tsap设置和通讯对方的本地一致,本例中20.00;填写对方的ip地址,本例中对方ip 192.168.0.16。在“数据传输”中可以设定通讯的数据区(详细信息请参考帮助)。本例中,客户端从服务器侧读取vb0~1 两个字节,放到本地的vb0~1中;客户端把本地vb2-3 两个字节传送到服务器侧的vb2~3。
图4
分别下载logo!项目,如图5。点击“选择”,添加需要下载的ip地址,如图6,在这里可以使用“检测”去检查此时是否可以检测到该ip地址;然后点击确定,系统会提示需要处于“stop”模式,如图7;点击“yes”后,开始下载,如图8。
图5
图6
图7
图8
下载完成后,软件会出现图9所示提示,点击“y”后,软件的信息窗口会有显示,如图10。到这里就完成了所有设置。
图9
图10
测试结果,分别在客户端和服务器侧,打开在线测试功能,如图11,激活操作员监控后,选择数据表;在数据表中输入需要监控的数据,如图12和13。可以看到数据传输正常。
图11
图12.客户端侧数据表
图13.服务器侧数据表
logo! soft comfort v7.0软件,提供了“参数映射”的功能,可以把程序中使用到的块的参数和v区建立起映射的关系。在客户端建立简单的程序,打开“工具”→“参数vm映射”,如图14。在这里可以选择程序中使用到的块,并且选择这些块中可以访问的参数,如图15、16(详细说明请点击帮助查询)。本例中,把接通延时定时器的当前时间映射到vw2。
图14
图15
图16
如图17所示,因为客户端接通延时定时器的参数已经和v区建立映射,所以当i1导通后,定时器开始工作,在服务器侧建立的参数表中就可以看到客户端的参数变化,通讯正常。
图17
1、指令分为单扫描周期指令和多扫描周期指令。对于多扫描周期指令,如果en或者req只使能一个扫描周期,该指令不能成功执行;例如大多数的通信指令;
2、fb块的输入输出形参存储于背景数据块中,在调用该fb时实参可选;而fc块的输入输出是临时内存,必须指定实参才能运行;
3、fb块的输入输出虽不是静态变量,但亦有保持功能,具体视程序而定;
4、注意变量被多次赋值时的先后顺序!因为变量的值总会被后执行动作更新,前面的值将被覆盖;例如下图:
程序初衷为当接受响应完成时err置位,或响应超时err置位。上述程序是可以完成正常功能的;但若二者互换,如下图
接收超时时,err不会置位,因为rev_done为0,err被复位!
5、step 7中的梯形图操作数、能流的监控特征色(蓝绿)、以及监控表中的布尔变量的刷新频率有限,可能不能反映真实的实时运行状况,可借助一个累加器来监视程序的运行状态;例如下图:
6、单个扫描周期中,一个布尔变量的上升/下降沿只能读取一次;因为读取一次之后,其pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化;
7、数组访问越界将导致cpu错误,err灯闪烁;
8、单扫描周期指令的循环操作是在单扫描周期完成的;
9、多使用宏定义,可使程序易读、方便修改;
10、关于能流:(1)能流流经某个具备en和eno的指令,并不一定代表该指令功能执行完成,只代表该扫描周期扫描完成;(2)算数运算、bool变量操作等单扫描周期指令的eno输出代表该指令执行完成。
11、fb/fc的en端将为能流提供扫描通道,en端断路,能流无扫描通路,内部变量将不再刷新,即该函数不再执行;当fb/fc的en端总是使能,enable输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新;请注意二者区别;例见下图:
前者fb12内部的变量总会被扫描,而后者在m3.0或db_valve.done为1时,内部变量不会被扫描;相应的,前者done变量将被下一扫描周期置0,而后者done置1后将因能流不通不能扫描而自行保持;