台达485做从站 时可以使用RS指令进行编写,也可以用标准的MODBUS协议进行通讯,用485接口与其它主机进行通讯时,应注意统一波特率和通讯协议。并使用屏蔽双绞线进行连接,避免现场干扰出现的问题。也可以使用485转POWERBUS接口,用POWERBUS在现场层跑MODBUS,这样施工最简便,省成本。
好像是这样,你试试,不过我指令忘了00
网络一
i01=off
————q00
r
|_______q01
s
网络二
i02=off————q01
r
|________q00
s
r
置位
s
复位
亲,,你看看这对不对,,我试过了,,没错
LIBRARY IEEE;
USE IEEESTD_LOGIC_1164ALL;
USE IEEESTD_LOGIC_UNSIGNEDALL;
ENTITY RS_clk IS
PORT( S,R,res :IN std_logic;
Q,NOT_Q:out std_logic);
END RS_clk;
ARCHITECTURE behav OF RS_clk IS
signal sel1,sel2: std_logic;
BEGIN
process(res,sel1,sel2)
begin
if res='0' then sel1<='0';
sel2<='1';
elsif (S='1' and R='0') then sel1<='1';
sel2<='0';
elsif (S='0' and R='1') then sel1<='0';
sel2<='1';
elsif (S='0' and R='0') then sel1<=sel1;
sel2<=sel2;
end if;
Q<=sel1;
NOT_Q<=sel2;
end process;
END behav;
首先,串口调试软件的波特率最好设置成9600,这种波特率也支持显示中文的,
USB转串口看你用的什么芯片,经过实验采用CH340或是341的是没有问题的,其他还有待验证。
串口调试软件也很重要,有些软件会奇怪出现乱码,但并不是程序错误,推荐你用小丁的sscom32,个人感觉很棒! ;
; 程序名称:单片机串口发送中文字符实验,232通信程序
; 硬件说明:打开《串口调试助手》,波特率设为9600速率,110592晶体
; 注 意:《串口调试助手》要设置好COM号(请核对是否和设备管理器的COM编号一致)
; *** 作说明:下载程序后打开串口调试助手sscom32exe即可显示,或按一下复位开关
;/
ORG 0000H
AJMP main
ORG 0030H
main: MOV 20H,#00H
MOV TMOD,#22H ;定时器工作方式
MOV SCON,#40H
MOV TH1,#0FAH ;波特率9600
MOV PCON,#80H
SETB TR1
SETB REN ;允许接收
ajmp start
start: mov dptr,#num ;查表
send : clr a ;
movc a,@a+dptr
cjne a,#'$',send_2
ajmp $ ;遇到$停止。
send_2:mov sbuf,a
JNB TI,$ ;串行发送一帧结束了吗?
CLR TI ;
inc dptr ;指针加一
Ljmp send
num:
db 0dh,0ah,0dh,0ah,"XY900_USB型单片机学习板USB-232串口中文发送试验 >
通过RS232总线与PC进行通信的测试程序(c语言)
/这是一个使用单片机串行通信口通过RS232总线与PC进行通信的测试程序,无需扩展可将DB9的第2和第3脚短路,进行自收自发测试采用串行中断接收,速率:9600,通信方式2,晶振使用:osc=110592MHz。使用SW1-SW6键盘发送文本数字1-6,数码管显示接收的ASCII数据/
void main(void)
{
SCON=0x50;
TMOD=0x21;
TH1=0xfd;
TL1=0xfd;
TH0=0xf4;
TL0=0x48;
ES=1;ET0=1;EA=1;
TR1=1;
TR0=1;
while(1)
{
if(!key){ Delay(30000);
a=Key_down();
SBUF=table[a];
while(TI==0);
TI=0;
}
}
}
uchar Key_down(void)
{ uchar x;
if(!sw1)x=1;
else if(!sw2)x=2;
else if(!sw3)x=3;
else if(!sw4)x=4;
else if(!sw5)x=5;
else if(!sw6)x=6;
return(x);
}
void Int_T0(void) interrupt 1
{
TH0=0xf4;
TL0=0x48;
if(count==5)count=0;
else count++;
switch(count)
{
case 0:DIG_NUM=0x7f;
LED_DISPLAY=buff_led1;
break;
case 1:DIG_NUM=0xbf;
LED_DISPLAY=buff_led2;
break;
case 2:DIG_NUM=0xdf;
LED_DISPLAY=buff_led3;
break;
case 3:DIG_NUM=0xef;
LED_DISPLAY=buff_led4;
break;
case 4:DIG_NUM=0xf7;
LED_DISPLAY=buff_led5;
break;
case 5:DIG_NUM=0xfb;
LED_DISPLAY=buff_led6;
break;
default:break;
}
}
void Int_Serial(void) interrupt 4
{
while(RI==0);
a=SBUF;RI=0;
buff_led1=buff_led2;
buff_led2=buff_led3;
buff_led3=buff_led4;
buff_led4=buff_led5;
buff_led5=buff_led6;
buff_led6=a;
}
void Delay(int t)
{while(--t);}
RS有两种意思:
1、RS是Remote Sensing的英文缩写,中文释义:遥感。从字面上来看,可以简单理解为遥远的感知,泛指一切无接触的远距离的探测;从现代技术层面来看,“遥感”是一种应用。
2、在asp文件中,rs又代表变量的意思。变量是用于临时保存数值的地方。每次应用程序运行时,变量可能包含不同的数值,而在程序运行时,变量的数值可能改变。
遥感RS简介:
遥感是以航空摄影技术为基础,在上世纪60年代初发展起来的一门新兴技术。开始为航空遥感,自1972年美国发射了第一颗陆地卫星后,标志着航天遥感时代的开始。经过几十年的发展,目前遥感技术已广泛应用于资源环境、水文、气象,地质地理等领域,成为一门实用的,先进的空间探测技术。
遥感是利用遥感器从空中来探测地面物体性质的,它根据不同物体对波谱产生不同响应的原理,识别地面上各类地物,具有遥远感知事物的意思。也就是利用地面上空的飞机、飞船、卫星等飞行物上的遥感器收集地面数据资料,并从中获取信息,经记录、传送、分析和判读来识别地物。
c或vb中有mscomm控件很好用,我常用,以下是我用delphi写的
with mscomm1 do begin
commport:=1; //端口号
settings:=9600,n,8,1; //端口设置
InputMode:=0; //设置或返回Input属性取回的数据的类型 0:文本 1:二进制
RThreshold:=1; //每次接收到字符即产生OnComm事件
SThreshold:=0; //传输缓冲区允许最小字符数
InBufferCount:=0; //清空接收缓冲区内容
InputLen:=0; //为0时 Input一次读取整个缓冲区内容
DTREnable:=true; //数据终端准备好
RTSEnable:=true; //发送请求
end;
mscomm1Output:=edit1text;//发送
str:=mscomm1input; //接收
三菱PLC,fx3u采用485/232通讯可以这样进行设定不用写程序,已知下位机设备为MODBUS协议的地址那么启用DEA通讯工具后设定PLC-MODBUS通讯定确定。
2进行设定PLC通讯格式,这里要与FX3UPLC通讯设定一样,这里我们选择9600,7,ODD,1
3MODBUS设备的通讯是9600,8,N,1 进行设定
4然后配制数据。将一号温度的H20地址现在温度传进三菱PLC D184寄存器中,以次类推进行设定
5设定1号站好后,进行复制就可以了,这样就配制完成温度16个站号将温度现在值传入指定的PLC寄存器中了。最后上传配制便可。
以上就是关于台达PLC做485从站时能使用RS指令吗全部的内容,包括:台达PLC做485从站时能使用RS指令吗、西门子s7-200正反转RS指令控制程序图怎么画、如何用VHDL语言编程 同步RS触发器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)