Utilisation de Visual Studio Community 2017 et AdvancedHMI pour créer une application IHM basée sur PC. J'ai plusieurs courir sans problème, donc passer à quelque chose de nouveau. Sur chaque ligne j'ai 7 tableaux (500 nombres réels chaque tableau) et je voudrais capturer ces données quotidiennement et enregistrer dans Excel. En utilisant EPPlus et AdvancedHMI j'ai le code suivant.Exception levée: 'System.IndexOutOfRangeException' dans EPPlus.dll
Private Sub DataSubscriber1_DataChanged(sender As Object, e As Drivers.Common.PlcComEventArgs) Handles DataSubscriber1.DataChanged
If e.ErrorId = 0 AndAlso e.Values.Count > 0 AndAlso e.Values(0) = "True" Then
Console.WriteLine("About to read the data")
Dim MyValues() As String = EthernetIPforCLXCom1.Read("VCell_1A_FES_Cycle_Average[0]", 500)
Console.WriteLine(MyValues.Length & "elements read.")
'* Transfer the values to Excel
Using ExcelPackage As New OfficeOpenXml.ExcelPackage(New System.IO.FileInfo("c:\Data.xlsx"))
For I = 0 To MyValues.Length - 1
Console.WriteLine("Element " & I & "=" & MyValues(I))
ExcelPackage.Workbook.Worksheets(1).Cells(1, I + 1).Value = MyValues(I)
Next
End Using
End If
End Sub
L'exécution de ce déclenchement et mon tag vale pour exécuter le datascriber je reçois ce qui suit.
A propos de lire les données
500Elements lire.
élément 0 = 87,945
Exception Jeté: « System.IndexOutOfRangeException » dans EPPlus.dll
Tout semble que cela devrait fonctionner, mais je suis très nouveau à VB ou tout type de codage pour que matière. Mon fort 'est la logique à relais PLC.
Merci.
Essayez d'écrire une valeur de test (pas du tableau) au fichier Excel avant la ligne '* Transférer les valeurs Excel'. Est-ce que vous obtenez toujours l'exception hors de portée? Sinon, arrêtez d'écrire les valeurs dans le fichier Excel de votre boucle et écrivez simplement les valeurs dans la console. Est-ce que ça marche? –
Merci, quand je serai au travail ce soir, je vais essayer. – Bobby5184
J'ai été en mesure d'écrire le tableau de 500 étiquettes à la console sans problème. J'ai modifié ma boucle et tout fonctionne bien maintenant. Merci. – Bobby5184