mcgs组态软件对modbus rtu设 mcgs modbus rtu
请问MCGS组态王和单片机modbus rtu通信,当通信几分钟就失败了, ...
你是用串口还是网口?串口添加串口父设备,下挂MODBUSRTU驱动网口添加TCPIP父设备,下挂MODBUSTCP/IP驱动然后再驱动中添加通道,通道地址与你的下位一致,但是在MCGS的通道地址要加一例如你下位的地址是1001,在MCGS的通道要加成1002。
1001对应的数据在1002中可以读出。
昆仑通态的MODBUS
用以下设备命令!SetDevice Read()或ReadP试试,直接设置地址,举例如下:1)!SetDevice(设备0,6, "Read(0,1,BT00=Data00;1,10,BT00=Data01) ")读取0区地址为1,1区地址10的继电器值,放入MCGS变量Data00,Data01中。
2) !SetDevice(设备0,6,"ReadP(4,10,WUB,2,Data00,Data01,nReturn)")表示读取4区寄存器从地址10开始的两个16位无符号数值,放入MCGS变量Data00,Data01中, 执行结果存入变量nReturn中。
ReadP(寄存器名称, 起始地址, 数据类型,数据个数n, 数据1, …..数据n [,返回状态])参数说明:寄存器名称:字符型变量,表示当前操作的寄存器,值为”1”,”0”,”3”,”4”,分别对应[1区]输入继电器、[0区]输出继电器、[3区]输入寄存器、[4区]输出寄存器。
寄存器地址:数值型变量,表示当前操作的寄存器地址,不同的设备地址范围不同,查阅相关手册确定。
数据类型:字符型变量,表示当前操作的寄存器数据类型附录2数据:数值型变量、开关量,它是用来存储设备命令数据的MCGS变量。
返回状态:返回批量读写设备命令的执行状态(当设备命令格式错误时无效), 具体返回值意义请参见通讯状态说明, 返回状态为可选参数(以[]标记), 用户也可通过通讯状态通道判断返回结果。
mcgs组态软件脚本编程
输出结果。
(另外,你还需要在数据库中定义wheel这个变量,一般都是写循环策略,每次增加一条语句,不要把所有的都写上。
表达不够好,希望能帮助你,程序从上至下执行,如果条件成立,再双击方块:if wheel>,然后在执行下一条语句的时候把上一条的Wheel结果作为后一条语句的初值,控制相关的设备等。
也就是SCDA。
既然如此,为数值型即浮点型的,不成立的话则跳过这一条,输出的结果就是5.可以随便增加语句,希望能多交流。
再补充:先说一下组态,执行相应的语句,也可以新建自定义策略。
以循环策略为例,你点击后打开,一般用于工业电力化工等行业的自控方面,是一种人机交互,机机交互的媒介,(这是我自己下的定义)。
它基于Windows操作系统和相关的VB或者C语言的基础上开发而成。
他可以让人们自由的编辑,浏览,从上到下,从左到右,如果第一条成立。
) 比如说只写。
快停电了,就说这么多吧QQ44710149,拖到方块上,继续把刚才的结果作为初值乡下传,只执行判断条件非零的语句。
不知道这次说清楚没,他就会根据后台程序的执行结果(每个扫描周期)返回对应的值,只要后台程序一直在运行,并且满足你设定的条件,他就会不停的改变自己的值。
对于你上面写的那些条件,也叫程序,在界面上点右键,写601,结果就是601-600=1,同样的道理,你写1805,也就是组态中你需要定义的一个变量,既然是变量,他的值就是可以改变的,如果你对他赋一个初值,并且触发了程序运行的条件,不成立执行下面的语句,直至程序的末尾,输出相应的值;接着进行第二个周期的扫描,利用第一个周期的返回值和每个语句进行比较。
补充,简单一点,所谓组态就是就是一种可视化的程序运行环境,继续判断条件,成立则根据你的算式算出一个新的结果送给下一条语句,就返回第一条语句的Wheel的结果,写几条都可以,每个周期他都要扫描一次,执行成立的表达式;600 then wheel=wheel-600,这个表达式,你对变量wheel输入600,然后双击执行条件,在数据库里新建一个变量DO点吧,设置好启动条件,然后右键点击第三个方块——策略工具箱——脚本程序,同样的步骤执行完毕,新增策略行,组态系统在每个周期都要把每一条语句执行一遍;依次循环,知道所有的条件都不成立,返回最终的结果输出。
你可以试验一下,就明白了在第一个扫描周期,在开发的时候它就可以利用这些编程语言,对它的一些控件(操作对象等)进行编程和定义。
你提到的问题中的 Wheel 就是你要操作的对象,他就不执行,就会弹出编脚本程序的串口,把你需要的哪些语句写进去:你可以在组态环境下打开运行策略的窗口,根据你的需要你可以写启动策略或者循环策略
威纶通触摸屏中组态的原件中只关联了一个modbus rtu地址就能和plc...
modbus 桢结构 : 地址 功能码 开始地址 数据长度 CRC检验码像你这种应该是使用功能3 例如 要问RTU(地址是0x01,要问得数据在0x02上,长度是一个字)就准备一个数组MESSAGE[255],从MESSAGE[0]开始赋值 &H01,&H03,&H00,&H02,&H00,&H01,&Hxx,&Hxx,(最后两个是CRC校验码,我没算)这样得一串数据叫一帧(MODBUS就是主问一帧从回一帧来运行的),接着就是打开MSCOMM,用个循环把数组按顺序放到输出缓冲发送就好了,接着就是读接受缓冲,分析数据了,回来的应该是 &H01,&H03,&H01,&Hxx,&Hxx,&Hxx,&Hxx,(地址,功能码,长度,数据,CRC校验)CRC校验完成后 你就可以提取中间得数据部分了,大概过程就是这样,最近一直在自己搞PIC单片机,通讯就是用得MODBUS。
要学MODBUS最好就是下个MOSBUS得测试软件,有好多的
“ModbusRTU规约”是什么意思?如题。
请高手赐教。
XDPS-2.0控制系统采用Modus通信规约通信,Modus通信规约电力系统使用很多,且XDPS-2.0的DCS工程师站提供了Modus接口的数据服务程序。
Modus通信规约要求一方为从站,一方为主站,为方便灵活配置采集周期,我们把实时查询系统端作为主站,DCS端作为从站。
实时查询系统的数据采集程序通过串口按Modus通信方式每隔一定周期向Modus接口的服务程序发送命令完成从DCS获取机组运行数据。
按数据包传递格式分,MODBUS通讯规约有两种,一种是MODBUS ASCII,一种是MODBUSRTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII 规约,通讯数据 量大而且是二进制数值时,多采用MODBUSRTU规约。
由于实时查询系统要传输的内容是数值且数据传输频繁,所以数据包传递选用RTU数据格式。
为了提高数据传输效率,模拟量和开关量测点的数值表示方法是不一样的,开关量只用1个yte就可以了,即1个字节可以传输8个开关量测点的状态;模拟量是浮点数,应该用4个字节才能精确表示,在满足精度和不增加计算难度的条件下,也可以采用工程计算方法只用2个字节整数表示即可。
可以采取的工程计算方法有直接影射和放大缩小两种办法。
所谓放大缩小就是把绝对值比较小的数进行放大若干倍后再进行传输,接收方把收到的数值缩小若干倍变为原来的实际数值,同理对于比较大的数先缩小再放大,该方法要求倍数设置要很合理,否则失真很大。
本系统中采用的是直接影射办法来表示测点的模拟量。
所谓直接影射就是把测点取值范围直接影射到2字节的整数可以表示的范围进行传输。
发送方把实际数值进行计算转换成工程值,接收方收到后再把工程值进行相反计算转换成实际数据
- 上一篇:优化相关商业软件 商业计划书的优化
- 下一篇:双系统切换软件 vivo双系统怎么设置
-