精华内容
下载资源
问答
  • 使用MCGS触摸屏与单片机通讯的心得

    千次阅读 2018-09-30 08:56:40
    1.MCGS的设备驱动是真的不好用,灵活性较差,当然这里针对MCGS与单片机通讯的时候,PLC设备还好。所以如果你想做MCGS与单片机通讯,最好采用他们提供的脚本驱动开发工具V2.0,这个在网上都能找到的,这里我就不给出...
     使用MCGS在项目中已经有一年了,有些个人心得如下:
     1.MCGS的设备驱动是真的不好用,灵活性较差,当然这里针对MCGS与单片机通讯的时候,PLC设备还好。所以如果你想做MCGS与单片机通讯,最好采用他们提供的脚本驱动开发工具V2.0,这个在网上都能找到的,这里我就不给出链接了。这款软件使用的语言是类VB语言,不完全遵循VB语言的语法规则,所以你还是要看下他的语法手册,这个已经在软件中集成好了,不需要另找。总结下,使用这种方式基本可以实现项目的功能,但会有些许麻烦。如果你的时间够多,可以使用单片机方式开发人机界面,这样会使你的自由度很高。
     2.MCGS的以太网通讯暂不支持自主开发驱动,这点很局限
     希望各位能使用好MCGS,祝大家工作愉快!
    
    展开全文
  • 介绍了51单片机触摸屏之间的通讯技术,给出了方案和程序
  • 140CPU67160 RJ45 威纶通 MT6100I 触摸屏 RS485 通讯说明1:PLC 设置2:MT6100I 设置3:通信线制作UNITY PLC 需与触摸屏通讯,接线方式参照上图。NC 不接。正常后 CPU167160 显示 4854、140CPU67160 统J45 MT6100I...

    70688aa4c3c123aa1db9c43d10d4b34f.png

    140CPU67160 RJ45 与威纶通 MT6100I 触摸屏 RS485 通讯说明

    1:PLC 设置

    f82f06bad6da1307c69e7a4a0e51e5e3.png

    2:MT6100I 设置

    5309b49bb7aca9bdf09b79de861ea087.png

    3:通信线制作

    41e05e16592dfc87dcc1919e14e93daa.png

    028bd4617d1c16de588365514f884cba.png

    UNITY PLC 需与触摸屏通讯,接线方式参照上图。NC 不接。正常后 CPU167160 显示 485

    4、140CPU67160 统J45 与 MT6100I 触摸屏 统S485 通信热备冗余,只需将两个 CPU 统J45 线并接到触摸屏 统S485 线上即可。


    MT6100i与Premium系列PLC以Unitelway方式通讯说明

    第一:Premium系列 PLC端设端设置,    PLC  设置端口 CTER  AUX接口与可以与MT6100i通信信:协数设置 PLC 口 通信参 ,  设 置,PLC设置为主站等步骤。

    2a72115f6abde38d0a8299a94607ab51.png

    第二步:对HMI程序设端设置:添加 TE UniTelway驱动,设置接口类型与通信参

    8092858de7e8638d4268f2620e349fc4.png

    第三步:务必保证触摸屏与 PLC 通讯电缆接线正确,接线方式如下:

    ca843a805820f3e0b00afe622592993b.png


    威纶通 tk6070ih 与 M340 通讯说明

    1、触摸屏与 M340PLC 之间通讯线对接线序如下

    86c25124a73b7ac049229502bc12fe5d.png

    RJ45的RS485 端口定义如下图:

    41e05e16592dfc87dcc1919e14e93daa.png

    2、下位机 modbus 口设置如图

    d5a19b88e7f6e67f701aaa4927378df6.png

    设置从站 波特率 据 校验 物理线路为 485 

    3、触摸屏画面    系统参 设置

    5ba1433150a382e7999eaa3ae2cdffa6.png

    其中本机 PLC 2 是由我们自己建立  ,点 新增可以建立,其中设置如下

    c6b32852070f255eb7346ee8a5cba4f8.png

    我们选择 是 统S485 通信,设置照图设置,其他默认C点 编辑—系统参 设置从 MODBUS 统TU 到 Local HMI 传输属于输出量,反过来则是输入量,bit 是 离散量,word   是模拟量。每步个地址 据交换需要新增步个。

    展开全文
  • MCGS触摸屏与单片机Modbus协议通讯

    热门讨论 2013-06-10 09:34:53
    此程序为51单片机与MCGS组态监控软件Modbus RTU通讯下位机程序, 此程序在STC12C5A60S2单片机上测试通过,可以移植到其他51系列单片机! 包含下位机单片机程序,上位机界面,Modbus RTU 驱动级说明文件。
  • 51单片机与维控触摸屏基于MOSBUS通讯程序,能处理上位机发给下位机的所有指令
  • :介绍了PIC单片机与威伦触摸屏的通讯方法及实现过程。简要分析了Modbus通讯协议,给出了PIC单片机与 ...成功应用于光电色选机系统,同时也为开发者采用触摸屏与带串行接口的智能设备之间的通信连接提供了参考。
  • 52 控制不了输入点Q:触摸屏做了三菱PLC的X点的元件,但是控制不了X输出?A:是的,PLC端X点无法通过触摸屏控制输出,屏上只能做X点的显示。53 MODBUS通讯延时Q:MT8101ie走MODBUS协议连接两台...

    51 三菱PLC可读不可写

    Q:MT8102IQ和三菱Q系列PLC通讯,屏无法写入PLC,但是可以读取PLC的状态和数值?

    A:PLC程序中"允许RUN中写入"打钩,程序下载重启后解决。

    3ec52bcc2879b084889e2a08411e79ae.png
    3ec52bcc2879b084889e2a08411e79ae.png

    52 控制不了输入点

    Q:触摸屏做了三菱PLC的X点的元件,但是控制不了X输出?

    A:是的,PLC端X点无法通过触摸屏控制输出,屏上只能做X点的显示。

    53 MODBUS通讯延时

    Q:MT8101ie走MODBUS协议连接两台台达温控仪,同时只能连接一台?

    A:将通讯延时调至30后实现通讯。

    dd00424aa8666408663d78e359cbbf98.png

    54 基恩士的位地址格式

    Q:MT8102iE与基恩士KV7500通讯,读取DM_bit100中的数据,不管是0位还是1位都没有变化?

    A:地址误填DM_bit100.0,根据地址格式(如图标示),正确的是DM_bit10000,所以会读取不到。

    b70168e44b9609d392597ec445fe10ac.png

    55 西门子200地址对应

    Q:西门子端200中VB是8bit的,威纶通软件中没有8bit,怎么对应?

    A:VB地址直接对应,格式选择16bit;

    VW地址使用2的倍数地址,格式选择16bit;

    VD地址使用4的倍数地址,格式选择16bit。

    展开全文
  • 本程序主要讲述维纶触摸屏与51单片机通讯实例,包括触摸屏程序,单片机程序与线路图。
  • 针对台达触摸屏内没有既有的89C51单片机通信程序,但却支持Modbus通信协议,用89C51单片机编程实现Modbus通信协议的功能,进行两者之间的通信连接。
  • 闲来无事,做个记录,触摸屏使用迪文DGUS-T5D2 10.1寸触摸屏单片机STM32F013系列,欧姆龙CP1E-N40PLC,之所以通过单片机转发是因为迪文触摸屏价格的巨大优势,核算单片机成本后,10.1寸触摸屏价格不超过400元,...

    闲来无事,做个记录,触摸屏使用迪文DGUS-T5D2 10.1寸触摸屏,单片机STM32F013系列,欧姆龙CP1E-N40PLC,之所以通过单片机转发是因为迪文触摸屏价格的巨大优势,核算单片机成本后,10.1寸触摸屏价格不超过400元,其次就是迪文触摸屏质量还算可以,进入正题。

    1.迪文触摸屏配置:

            1)串口配置:迪文触摸屏T5触摸屏串口配置在文件T5UID2.CFG文件,具体配置参看迪文手册:"T5UID2应用指南.PDF",我配置的串口参数:115200,8,1,N;

            2)  界面配置:根据使用的触摸屏分辨率,做一张相应分辨率的图片,做好按键,数据显示框,再做一张键盘页面,通过迪文软件转换成迪文屏幕可以使用的图片将两张图片加载到软件;

          注:T5屏的0x1000以上变量地址用户使用,这里需要注意。

                     (1)配置按键:在图片的按键部分放置一个“按键返回”控件,配置:按键地址0x1000,键值0,勾选“数据自动上传”;

                              键盘按键配置:在图片的按键部分放置多个“基础触控”控件,根据提示设定键值:0-9,退格,确认,取消等键值,设定好后放在对应位置;

                     (2)显示框配置:在图片显示框部分放置一个“数据变量显示”控件,变量地址0x1100;

                    (3)输入框配置:这个需要做好键盘;在图片显示框部分放置一个“变量数据录入”控件,变量地址0x2100,勾选“数据自动上传”,键盘设置,选择做好的键盘,设置好对应的显示位置坐标(这里是控制用户输入的数据显示在屏幕那个位置)。

        至此,触摸屏配置完成;

    2.STM32F103VCT6

    配置:

         1)硬件:迪文T5触摸屏使用无壳体屏串口输出电平为TTL电平,由于传输距离有5米左右(单片机还有其他用途,距离较远),所以触摸屏端使用232芯片转换为232电平.

                     屏端:24V输入使用LM7805输出5V给屏和MAX232供电,屏幕供电的24地很干净,所以不做隔离;

                    单片机和屏端:同样24V输入使用LM7805输出5V再通过LM1117-3.3输出3.3给STM32F103VCT6和SP3232EEN供电,单片机端232转换芯片使用兼容3.3V的SP3232EEN;

                     CP1E端:使用RS232或者RS485选件板;

                    单片机对CP1E端:使用MAX3485或者SP3232EEN连接转口,芯片选择兼容3.3V;

       至此,硬件配置完成;

        2)软件:

                      1)PCL-CP1E:使用hostlink mode-c协议,为接收到命令后主动响应,所以PLC端不需要编程;

                      2)STM32软件使用“STM32CubeMX”配置,生成KEIL MDK5工程,很简单,网上有很多教程,需要使用什么功能可以去查;

    3.通讯协议:

            1)STM32F103VCT6与T5屏按键的实现:

                  按键下发给单片机的数据格式:  5A  A5  06 83 10 00 01 00 00

                          5A A5:帧头,可以在T5UID2.CFG文件修改;

                                06:该字节后接收的数据长度;

                                83:迪文指令;

                           10 00:变量地址;

                                01:数据长度,单位“字”;

                           00 00:数据,这里是前面按键控件键值设定多少,接收就是多少;

              然后根据接收的键值不同来控制PLC-CP1E的开关量,在这里我接收到上个按键之后,是控制PLC的H1.00的打开和关闭,

    下面阐述开关PLC的H1.00;

             因为H区的写入是按字写入的,所以在写H1.00之前,需要保持H1.01--H1.15的状态不变,我们先读取H1整个字节的状态,然后对第0位取反后在写入PLC的H1寄存器,hostlink mode-c协议为ASCII码:   

              读H区的指令格式如下:@00RH+0001+0001+FCS校验(两字节)+*+结束码,对应单片机程序如下:

                usart2_txBuf[0]  = 0X40;//@  0X40
                usart2_txBuf[1]  = 0X30;//0  0X00
                usart2_txBuf[2]  = 0X30;//0     0X00
                usart2_txBuf[3]  = 0X52;//R     0X52
                usart2_txBuf[4]  = 0X48;//H     0X48
            
                usart2_txBuf[5]=(uint8_t)((start_addr>>12)&0x000f);
                usart2_txBuf[5]=HEX2ASCII(usart2_txBuf[5]);        
                usart2_txBuf[6]=(uint8_t)((start_addr>>8)&0x000f);
                usart2_txBuf[6]=HEX2ASCII(usart2_txBuf[6]);            
                usart2_txBuf[7]=(uint8_t)((start_addr>>4)&0x000f);
                usart2_txBuf[7]=HEX2ASCII(usart2_txBuf[7]);    
                usart2_txBuf[8]=(uint8_t)(start_addr&0x000f);
                usart2_txBuf[8]=HEX2ASCII(usart2_txBuf[8]);//4字节地址
                
                usart2_txBuf[9]=(uint8_t)((len>>12)&0x000f);
                usart2_txBuf[9]=HEX2ASCII(usart2_txBuf[9]);        
                usart2_txBuf[10]=(uint8_t)((len>>8)&0x000f);
                usart2_txBuf[10]=HEX2ASCII(usart2_txBuf[10]);            
                usart2_txBuf[11]=(uint8_t)((len>>4)&0x000f);
                usart2_txBuf[11]=HEX2ASCII(usart2_txBuf[11]);    
                usart2_txBuf[12]=(uint8_t)(len&0x000f);
                usart2_txBuf[12]=HEX2ASCII(usart2_txBuf[12]);//读取长度
                
                XORCheck(usart2_txBuf, 13);
                usart2_txBuf[13]=((FCS_CHECK>>4)&0x0f);
                usart2_txBuf[13]=HEX2ASCII(usart2_txBuf[13]);    
                usart2_txBuf[14]=(FCS_CHECK&0x0f);
                usart2_txBuf[14]=HEX2ASCII(usart2_txBuf[14]);//校验
                FCS_CHECK=0;
                
                usart2_txBuf[15]=0X2A;// "*"   0X2A
                usart2_txBuf[16]=0X0D;//   结束码

       单片机等待PLC返回数据后,返回数据为ASIIC码形式,处理数据后并对H1的第0位取反,在将对应数据写到PLC的H1寄存器;           写H区指令如下:@00WH+0001(写入的开始地址)+0001(写入数据)+FCS校验+*+结束码,对应单片机程序如下:

        usart2_txBuf[0]  = 0X40;//@   0X40
        usart2_txBuf[1]  = 0X30;//0   0X00
        usart2_txBuf[2]  = 0X30;//0     0X00
        usart2_txBuf[3]  = 0X57;//W     0X57
        usart2_txBuf[4]  = 0X48;//H     0X48
        
        usart2_txBuf[5]=(uint8_t)((start_addr>>12)&0x000f);
        usart2_txBuf[5]=HEX2ASCII(usart2_txBuf[5]);        
        usart2_txBuf[6]=(uint8_t)((start_addr>>8)&0x000f);
        usart2_txBuf[6]=HEX2ASCII(usart2_txBuf[6]);            
        usart2_txBuf[7]=(uint8_t)((start_addr>>4)&0x000f);
        usart2_txBuf[7]=HEX2ASCII(usart2_txBuf[7]);    
        usart2_txBuf[8]=(uint8_t)(start_addr&0x000f);
        usart2_txBuf[8]=HEX2ASCII(usart2_txBuf[8]);
        for(i=0;i<len;i++)
        {
            usart2_txBuf[i*4+9]=(uint8_t)(((*(cio_data+i))>>12)&0x000f);
            usart2_txBuf[i*4+9]=HEX2ASCII(usart2_txBuf[i*4+9]);
            
            usart2_txBuf[i*4+10]=(uint8_t)(((*(cio_data+i))>>8)&0x000f);
            usart2_txBuf[i*4+10]=HEX2ASCII(usart2_txBuf[i*4+10]);
            
            usart2_txBuf[i*4+11]=(uint8_t)(((*(cio_data+i))>>4)&0x000f);
            usart2_txBuf[i*4+11]=HEX2ASCII(usart2_txBuf[i*4+11]);
            
            usart2_txBuf[i*4+12]=(uint8_t)((*(cio_data+i))&0x000f);
            usart2_txBuf[i*4+12]=HEX2ASCII(usart2_txBuf[i*4+12]);
        }
        XORCheck(usart2_txBuf, 13);
        usart2_txBuf[len*4+9]=((FCS_CHECK>>4)&0x0f);
        usart2_txBuf[len*4+9]=HEX2ASCII(usart2_txBuf[len*4+9]);    
        usart2_txBuf[len*4+10]=(FCS_CHECK&0x0f);
        usart2_txBuf[len*4+10]=HEX2ASCII(usart2_txBuf[len*4+10]);
        FCS_CHECK=0;
                
        usart2_txBuf[len*4+11]=0X2A;// "*"   0X2A
        usart2_txBuf[len*4+12]=0X0D;//结束码

    cio_data为定义的数组,里面存放需要写入的数据值,H1的第零位取反后放入这里,len位写入寄存器的长度;这里我们只写入H1,所以len=1;

    至此,更改H1.00结束;

    同理根,据上述操作使用WD和RD命令可以读取和写入PLC的D区;

           2)写入T5屏,使T5屏显示读取的PLC数据:

                使用WD命令读取PLC的数据后,将plc的数据处理,然后发送给触摸屏,发送触摸屏程序如下:

                com_buf[0] = 0x5a;
                com_buf[1] = 0xa5;
                com_buf[2] = 0x05;
                com_buf[3] = 0x82;


                com_buf[4] = 0x11;//写入触摸屏的地址
                com_buf[5] = 0x00;

          
               com_buf[6] = 0x00;

               com_buf[7] = 0x05;  写入的数据5

                HAL_UART_Transmit(&huart1,com_buf,8,20);//STM32F103发送函数;

    触摸屏供电和RS232<-->TTL硬件电路如下图:

    实物图,由于没有正好大小的电容,电感,所以看上去有点歪:

     

          

    展开全文
  • 串口屏(触摸屏)组态软件+多台51单片机MODBUS RTU多机串口通信程序源码实现触摸屏(串口屏)与单片机的通讯,主要是解决通讯协议的问题。本文使用开放的Modbus通讯协议,以广州易显的...触摸屏与单片机之间采...
  • 通过对触摸显示的操作,实现手持部分和终端部分二者的无线通讯。系统采用大容量的SD卡作为存储部分,通过SPI将VS1003BSD卡的数据STM32进行交互通信。本解说器在播放时没有出现理论上的断续情况,音质较好,占用的...
  • 很多时候,工业控制或者产品设计方面受...单片机与人机界面触摸屏通讯的最简单,最有效的 2种方法,其实就是分为2种通讯协议,即工业标准的 Modbus RTU协议和工程师自己定义的 自由协议。 本实例采用其中一款人机界
  • 触摸屏人机界面组态软件HMIMaker,是一款基于ARM架构的嵌入式控制系统开发的嵌入式软件,专业应用于触摸屏的二级界面开发,具有单片机协议,modbus通讯协议,I2C通讯协议,西门子,三菱,台达,欧姆龙,信捷,永宏等...
  • 触摸屏通道 usSCoilBuf[0] 8 7 6 5 4 3 2 1 usSCoilBuf[1] 16 15 14 13 12 11 10 9 usSCoilBuf[2] 24 23 22 21 20 19 18 17 usSCoilBuf[3] 32 31 30 29 28 27 26 25 usSCoilBuf...
  • linux--6410触摸屏驱动

    2011-08-28 04:29:00
    目前,市面上很多6410开发板都存在触摸屏抖动的问题,tiny6410也不例外,友善的解决方法是采用一线触摸,即在LCD板上,用一个单片机控制ADS7846芯片AD转换,再将数据通过单总线的方式6410通讯。可是,我这里没有...
  • 通过对触摸显示的操作,实现手持部分和终端部分二者的无线通讯。系统采用大容量的SD卡作为存储部分,通过SPI将VS1003BSD卡的数据STM32进行交互通信。本解说器在播放时没有出现理论上的断续情况,音质较好,...
  • 目前,市面上很多6410开发板都存在触摸屏抖动的问题,tiny6410也不例外,友善的解决方法是采用一线触摸,即在LCD板上,用一个单片机控制ADS7846芯片AD转换,再将数据通过单总线的方式6410通讯。可是,我这里没有...
  • 新增了对多种新型号PLC的支持,另外除了支持常见的PLC通讯外,更新增对辅助设备(AUX)的支持,实现了人机界面同时PLC及辅助设备通讯,辅助设备可以是变频器,温控器,单片机等。下面举例说明MT510T双串口通讯方式的...
  • 摘要: ● iTOP-HMI102-N(10.2寸工业触摸屏)以太网触摸屏,配有2组独立的...● 串口支持各种PLC协议和标准的MODBUS协议,可方便连接各种PLC和智能仪表,同时也可以自由的与单片机进行通讯。; ● 可以配4G存储SD...
  • ● 串口支持各种PLC协议和标准的MODBUS协议,可方便连接各种PLC和智能仪表,同时也可以自由的与单片机进行通讯。;● 可以配4G存储SD卡,将报警数据、历史数据统统的保存进去,保证了详细的数据记录;● 配有标准的...
  • 新增了对多种新型号PLC的支持,另外除了支持常见的PLC通讯外,更新增对辅助设备(AUX)的支持,实现了人机界面同时PLC及辅助设备通讯,辅助设备可以是变频器,温控器,单片机等。下面举例说明MT510T双串口通讯方式的...
  • STM32MCGS通讯.zip

    2021-01-13 15:48:22
    这是一个STM32单片机与昆仑通泰触摸屏(Hl系列)的一个通讯例程,把串口配置改成自己的单片机一样的就行,还要注意触摸屏工程里面的设备地址
  • 目前,市面上很多6410开发板都存在触摸屏抖动的问题,tiny6410也不例外,友善的解决方法是采用一线触摸,即在LCD板上,用一个单片机控制ADS7846芯片AD转换,再将数据通过单总线的方式6410通讯。可是,我这里没有...
  • 目前,市面上很多6410开发板都存在触摸屏抖动的问题,tiny6410也不例外,友善的解决方法是采用一线触摸,即在LCD板上,用一个单片机控制ADS7846芯片AD转换,再将数据通过单总线的方式6410通讯。可是,我这里没有...
  • 该设计采用新型温度传感器采集变频器工作中的温度场温度,下位机以具有AD转换功能的STC-IAP15W4K58S4单片机为核心,上位机触摸屏之间通过Modbus协议进行通讯。并提出了一种改进型多次累加求和法,准确实现变频器温度...
  • 介绍工业串口液晶显示触摸屏与人机界面组态软件HMImaker的开发指南,工业液晶显示触摸屏是一种包含TFT LCD显示屏、LCD控制器、触摸屏、人机界面组态软件系统和单片机TTL电平串口,RS232,RS485,以太网等通讯接口于...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

触摸屏与单片机通讯