C++(QT)开发OMRON上位机fins TCP UDP通信协议 QT开发上位机例子 C++快速实现OMRON欧姆龙fins TCP UDP上位机开发 支持Windows、linux平台

自行封装Omron欧姆龙fins TCP UDP协议实例下载----->网盘下载

Omron FINS协议在工业自动化领域得到了广泛的应用,特别是在与PLC设备的通信方面。FINS(Factory Interface Network Service)协议是Omron公司开发的一种专用协议,支持以太网、控制网络和RS232C/485串行通信之间的无缝通信。在企业中,FINS协议主要用于实现上位机与PLC之间的数据交换和控制,以提高自动化控制水平。

PLC可以对接多种设备,包括但不限于传感器、执行器、HMI(人机界面)、SCADA(监控与数据采集)系统、Historian、MES(制造执行系统)、ERP(企业资源计划)以及各种自定义应用程序。通过FINS协议,上位机可以读写PLC的数据区域,甚至控制其运行状态,简化用户程序。

对于上位机的开发,在实际开发中,开发者需要掌握FINS协议的数据帧结构和命令代码,以便进行有效的通信。


void OmronPlc::on_bt_write_3_clicked()
{
    try{
        if(!fins->isConnected()){
            return;
        }
        string key=ui->lineEdit_6->text().toStdString();
        vector<int> list;
        if(ui->lineEdit_5->text()!=""){
            list.push_back(ui->lineEdit_5->text().toInt());
        }
        bool check=fins->WritePlcFormListInt(key,list);
        qDebug()<<"check-->"<< QString::number(check);
        if(ui->listWidget->count()>19){
            delete  ui->listWidget->takeItem(0);
        }
        if(!check){
            ui->listWidget->addItem(QString::fromUtf8(getCurrentTimeAsString().c_str())+
                                    " 写入"+ui->lineEdit_6->text()+"出错-->"+ui->lineEdit_5->text());
            return;
        }
        ui->listWidget->addItem(QString::fromUtf8(getCurrentTimeAsString().c_str())+
                                " 写入"+ui->lineEdit_6->text()+"成功-->"+ui->lineEdit_5->text());
    }
    catch (const exception& e) {
        // 捕获 exception 或其子类的异常
        qDebug()<<"on_bt_write_3_clicked-->: " << e.what();
    }
}

void OmronPlc::on_bt_write_2_clicked()
{
    try{
        if(!fins->isConnected()){
            return;
        }
        string key=ui->lineEdit_6->text().toStdString();
        vector<int> list;
        if(!(ui->lineEdit_5->text()=="1" || ui->lineEdit_5->text()=="0")){
            ui->listWidget->addItem("请输入1或0");
            return;
        }
        list.push_back(ui->lineEdit_5->text().toInt());
        bool check=fins->WritePlcFormListBit(key,list);
        qDebug()<<"check-->"<< QString::number(check);
        if(ui->listWidget->count()>19){
            delete  ui->listWidget->takeItem(0);
        }
        if(!check){
            ui->listWidget->addItem(QString::fromUtf8(getCurrentTimeAsString().c_str())+
                                    " 写入"+ui->lineEdit_6->text()+"出错-->"+ui->lineEdit_5->text());
            return;
        }
        ui->listWidget->addItem(QString::fromUtf8(getCurrentTimeAsString().c_str())+
                                " 写入"+ui->lineEdit_6->text()+"成功-->"+ui->lineEdit_5->text());
    }
    catch (const exception& e) {
        // 捕获 exception 或其子类的异常
        qDebug()<<"on_bt_write_2_clicked-->: " << e.what();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weijia3624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值