NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

如何用LabVIEW控制PLC实现触摸屏的功能呢?

已解决!
转到解答

您好

     我用的是你所说的第一种数据格式,每个布尔控件控制一个器件。我的PLC用的就是第一种格式。您能帮我设计一下我的那个程序吗?非常感谢。

0 项奖励
11 条消息(共 23 条)
4,363 次查看

您可以这样试一下,请见附件。

12 条消息(共 23 条)
4,353 次查看

您好!

      我看见您帮我编的程序了,非常感谢。我想问一下:是不是最后写入PLC的字符串是个ASCII啊?那接收端收到后还得进行转换呗?转换成二进制数才能控制PLC上的小灯亮与灭。

0 项奖励
13 条消息(共 23 条)
4,344 次查看

您好,我又编写了一个程序,您在帮我看看这个行不行,能不能实现直接把这个用0和1组成的字符串传输出去。

0 项奖励
14 条消息(共 23 条)
4,343 次查看

 


@镜花水月 wrote:
... 我想问一下:是不是最后写入PLC的字符串是个ASCII啊?...

 

您好,

 

由于VISA Write发送的数据类型必须是string,需要把0x01转成字符类型(C语言中的char)再发送,如果把字符看成ASCII code 则其值还是1。所以并不是0x01的ASCII code (49)。

 

可是如果按照您write-2.vi中的程序,则把0x01转成 1的ASCII code '1' 发送出去。

 

是发送'1'还是0x01,需要视下位机PLC的程序实现来定。您可以根据需要选择其中一种方案。

15 条消息(共 23 条)
4,335 次查看

您好, 

 非常感谢!我还是有些疑惑,您帮我编写的那个程序,如果所有的开关我都置1的话它发送的就是rrrrrrrrr,那么这个r又是什么呢?

是ASCII吗?但是1的ASCII 不是49吗?为什么会出现r呢?我不明白这点,希望您能在帮我解答一下,真的是很不好意思,我刚学,

对这些不太明白,真的是浪费您时间了。

0 项奖励
16 条消息(共 23 条)
4,322 次查看
解答
接受人 镜花水月

ASCII码是一种常用的字符集。它把7bits数据对应到一些常用的字符或者控制符。当然类似的字符集还有很多,如Unicode,GB2312,UTF-8等。

 

一个字符集就是一组 字符/控制符 到 数据 的映射。比如ASCII中把 数据 49(0x31)定义为字符 '1';而把数据 1(0x01) 定义为控制符 SOH ,计算机打印出来就是那个类似r的字符。

 

回到您最初的问题上,您是要对下位机发送0x01 OR 0x00 进行开关控制,显然最简单的做法是吧0x01/0x00作为数据发送,而不是说发送‘1', '0'的ASCII码。因为这样可以避免数据到ASCII的转换。所以您在VISA Write Buffer中或许看到模样怪异的字符串,但是其实VISA发送出去的就是您想要的数据。

 

SOH
17 条消息(共 23 条)
4,318 次查看

您好!

哦,我明白了,太感谢你了,真的很谢谢您帮我编的那个程序。

0 项奖励
18 条消息(共 23 条)
4,308 次查看

为什么LabVIEW与PLC联机调试的时候总是出现下面的错误呢?下面的截图就是我说的那个错误。是我没装VISA驱动吗?

0 项奖励
19 条消息(共 23 条)
4,306 次查看

能把全部error message贴出来看看吗?

 

可以尝试用NI Spy 看下 VISA 和 PLC通讯的数据。判断问题是出在上位机 还是下位机。

 

"开始 >> 程序 >> National Instruments >> NI Spy"

 

20 条消息(共 23 条)
4,301 次查看