酒泉西门子专业授权代理商
程序编程
可以通过SFB/FB 14 "GET",从远程CPU中读取数据。
S7-300:在REQ的上升沿处读取数据。在REQ的每个上升沿处传送参数ID、ADDR_1和RD_1。在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1参数。
S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴CPU。远程伙伴返回此数据。在 下一个SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。必须要确保通过参数ADDR_i和RD_i定义的区域在长度和数据类型方面 要相互匹配。
通过状态参数NDR数值为1来指示此作业已完成。只有在前一个作业已经完成之后,才能重新激活读作业。远程CPU可以处于RUN或STOP工作状态。如果 正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。
通过使用SFB/FB 15 "PUT",可以将数据写入到远程CPU。
S7-300:在REQ的上升沿处发送数据。在REQ的每个上升沿处传送参数ID、ADDR_1和SD_1。在每个作业结束之后,可以给ID、ADDR_1和SD_1参数分配新数值。
S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴CPU。 远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要确保通过参数ADDR_i和SD_i定义的区域在编号、长度和数据类 型方面相互匹配。
如果没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数DONE来指示,其数值为1。只有在*后一个作业完成之后,才能再次激活写作业。远程 CPU可以处于RUN或STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出 表示。
打开SIMATIC 315 PN-1的OB1,在OB1中依次调用FB14,FB15如图12、图13所示:
图12 FB14调用
表2.FB14参数说明 :
参数 | 描述 | 数据类型 | 存储区 | 描述 |
REQ | bbbbb | BOOL | I、Q、M、D、L | 上升沿触发调用功能块 |
ID | bbbbb | WORD | M、D、常数 | 地址参数ID |
NDR | OUTPUT | BOOL | I、Q、M、D、L | 为1时,接收数据成功 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 接收到新数据 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代码 |
S7-300: | IN_OUT | ANY | M、D I、Q、M、D、 | 从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。 |
S7-300: | IN_OUT | ANY | S7-300:M、D | 本站接收数据地址 |
下载完成后,可点击“激活连接状态"按钮,查看连接状态,如下图所示,则表示组态的连接已经成功建立。
图11.连接已建立
2.11 如果出现如下图所示的情况,则说明连接没有建立,请检查网线的连接、IP地址等。
图12.连接未建立
3、编写PLC程序,调用通讯块
3.1 组态连接建立成功后,需要调用通讯功能块PUT和GET进行数据交换。S7-300用于通讯连接的功能块位于标准库中,如下图所示:
图13.PUT GET指令位置
3.2调用PUT指令,本例中本地S7-300 CPU将DB10.DBB0开始的10个字节写入通信伙伴CPU 的DB11.DBB0开始的10个字节中。
图14.PUT指令
参数 | 说明 |
REQ | 上升沿触发,一次上升沿发送一次数据 |
ID | 连接ID(参看图8) |
ADDR_1 | 指向伙伴CPU接收地址区域 |
SD_1 | 指向本地CPU发送地址区域 |
DONE | 发送完成(上升沿) |
ERROR | 有故障发生(上升沿) |
STATUS | 故障代码 |
表 3 PUT管脚说明
3.3调用GET指令,本例中将通信伙伴CPU的DB20.DBB0开始的10个字节读入到本地S7-300 CPU的DB21.DBB0开始的10个字节中。
图15.GET指令
参数 | 说明 |
REQ | 上升沿触发,一次上升沿读取一次数据 |
ID | 连接ID(参看图8 |
ADDR_1 | 指向伙伴CPU发送地址区域 |
RD_1 | 指向本地CPU接收地址区域 |
DONE | 接收完成(上升沿) |
ERROR | 有故障发生(上升沿) |
STATUS | 故障代码 |
表 4 GET管脚说明
3.4 S7-300 CPU做S7通讯的客户端时,伙伴CPU无需组态编程,准备好相应的数据区即可,如本例中的DB10和DB20。如果伙伴方是S7-1200(固件版本V4.0以上)或是S7-1500 CPU,需要在CPU属性的连接机制中勾选"允许来自远程对象的PUT/GET通信访问",如下图所示:
首先说是在启动过程中。三相380伏交流电机在启动过程中缺一相。一般在教科书上说是转不起来的,电机只会嗡嗡作响。但我在实际工作中发现只要电机不太大,而且还是轻载或者是空载,个别电机就可以在缺相的情况下转起来。只不过转速略微偏低一些,而且电流很大。但绝大多数电机在缺一相的情况下是转不起来的。但如果在启动过程中缺两相,那么电机任何情况下都是转不起来的。 还有一种情况就是运行过程中缺相,如果三相交流380伏电机在运行过程突然中缺一相。电机一般不会停下来。除非是特别大的负载。此时电机的电流会偏大,而且振动也比较大。并伴有异音。电流也比较大。 值得一提的是,三相380伏电机在缺一相的情况下运行是很危险的。如果不及时发现停下来就容易烧毁电机。
小型电机启动时缺相,如果没有负荷就会不均匀的慢转,同时发热,若不及时停车,不用多长时间就会烧毁,如果带上负荷启动,就转不起来,同样也会烧毁。大一点的电动机缺相启动,就会嗡嗡直叫,就得赶快停车,否则立马烧毁。
如果电机在运行时缺相的话,电机也会发出异常声音,而电动机会因为惯性的作用下继续运转,如果不立即停机,而继续运转的话,电机的绕组会被烧坏,因此需在电动机的控制电路设置断相保护。三相电机缺相后,电机还在运转,但这时气隙中已不是旋转磁场,所以它产生的转矩就小了,为了维持电机继续运转,这时必须流入更多的电流来产生足够的转矩,所以电流大了,当负荷较大时,电机就会过载,时间一长,就会烧毁电机。
三相异步电动机在停运时,如果有一相绕组开路或电源有一相断开(或缺相)。当启动电机时,绕组产生的磁场可分成两个大小相等\方向相反的旋转磁场,它们与转子作用产生的转矩也是大小相等\方向相反。因此启动转矩为零而不能启动,在运转时缺相,绕组产生的磁场也可分为两个大小相等\方向相反的旋转磁场,但与电动机转向相反的旋转磁场与转子间的相对转速很大,在转子中产生的感应电动势和电流的频率差不大是电源频率的几倍,转子的感抗很大,故决定转矩大小的电流有功分量很小,所以逆向转矩远小于正向转矩,因此电动机能继续运行。
造成电动机缺相运行的原因有:
①保险丝选择不当或压合不好,使熔丝断一相。
②开关发触器的触头接触不良。
③导线接头松动或断一根线。
④有一相绕组开路。