资源描述
______________________________________________________________________________________________________________
S7300可以和多个S7200 smart进行以太网通信:
300做客户机,S7-200 SMART做服务器。STEP7中建立S7连接, 连接伙伴为“未指定”。在连接属性对话框中设置通信伙伴的IP地址,在地址详细信息对话框中设置本地的TSAP为10.02, 伙伴的TSAP为03.01。
300调用FB 14(GET)/FB 15(PUT),来读写S7-200 SMART的数据区。
S7-200 SMART不需要编写通信程序。
问答:
1.REQ端是要一个什么样的信号?比如一个常开点M150.0可以么?
2.本地站点已经使用过的点,比如,我的M100.0已经定义了,那么在ADDR_1中怎么确认伙伴站点的M100.0而不是本地站点的M100.0?前面要加什么前缀么?我现在一打M100.0就出现本地我定义过的那个
3.SFB14,15要放在哪里运行呢?是OB1里面还是OB35呢?
问题补充:
1.REQ的上升沿信号,需要0,1变换么?还是只触发一次就可以了?
2.在OB35中是不是就可以不用做REQ上升沿的编程了呢?
答:
1.REQ-上升沿时激活数据传输,可以使用M150.0
2.至于M100.0在本地被定义过是因为ADDR_n与RD_n参数地址有重叠,或是与通信的地址区有重叠。请检查。
3.放到OB1中那么REQ触发的信号上升沿需要编程。假设在OB1中调用,每200ms调用一次,那么先在CPU属性中-周期/时钟存储器的选项卡中查看“时钟存储器”一项,并将时钟存储器打勾,另将存储字节(B)设为150,则M150.1周期为200ms(ON 100ms,OFF 100ms).在OB1中加两条语句,使M140.1和M100.1相位相反,它们分别作系统功能块GET和PUT的REQ(通信请求)信号,它们的上升沿互差100ms,编写程序如下:
NETWORK 1
AN M150.1
= M140.1
NETWORK 2
CALL SFB14,DB14
REQ :=M150.1
......
.......
(由用户根据需要自己定义参数,省略)
NETWORK 3
CALL SFB15,DB15
REQ: =M140.1
(由用户根据需要自己定义参数,省略)
SFB14 / SFB15是系统函数模块,因此包含在CPU的固件中。
SFB14和SFB15是异步通信函数。
可以跨几个OB1循环运行。
SFB14和SFB15通过输入参数(“REQ”)激活。
任务结束后显示“DONE”、“NDR”或者“ERROR”。
使用SFB14从远程CPU读取数据,使用SFB15向远程CPU写入数据。
1. REQ是控制参数请求输入指令,其作用是在其上升沿时激活参数交换,类型是布尔,当然可以用常开点存储器M150.0作为输入;
2. 无论是SFB14(从伙伴CPU读数据)还是SFB15(写数据到伙伴CPU),ADD_1都是指的是要读写的伙伴CPU存储区的指针,具体就是在SFB14中,ADD_1是要读的伙伴CPU存储区域的指针,而RD-1才是从伙伴读出的数据要输入的本地站点CPU指针;同理对SFB15而言,ADD_1是要写入的伙伴CPU存储区域的指针,而SD-1才是从本地站点发送的存储区域的指针;
3. 由于指针是指向一个变量的地址,即用地址作为实参,因此要加前缀;
4. SFB14和SFB15既可以放在OB1也可以放在OB35中执行;使用OB35的好处是它以固定的时间间隔100毫秒执行中断程序,优先级高,而且COM_RST自动复位,无须软件复位
如何设置s7-300的时钟存储器的字节地址以及时钟脉冲:
打开硬件组态,双击CPU打开CPU属性,选择“周期/时钟存储器”选项卡,打勾"周期/时钟存储器"标签,设置存储器字节,默认为0。该字节MB100,从M100.0到M100.7为周期性改变值的存储位(脉冲占空比:1:1)。
时钟存储字节(Memory Byte)的各位对应周期/频率如下:
字节位 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
频率(Hz) 0.5 0.62 1 1.25 2 2.5 5 10
周期(秒) 2 1.6 1 0.8 0.5 0.4 0.2 0.1
存盘编译保存然后下载到CPU中就可以了。
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
精品资料
展开阅读全文