FP_COM_SET_PARAMETER

Définir les paramètres de communication pour le port CPU/SCU/MCU

Cette instruction FP envoie les modifications des paramètres de communication à un module. Les modifications sont spécifiées par s2_dutParameter pour le port de communication indiqué par s1_Port. Si le mode de communication est défini sur Liaison API, les paramètres de la liaison API peuvent être spécifiés par s3_dutPlcLinkParameter.

NOTA

Lorsque vous utilisez cette instruction, veillez à ce que le mode de communication du port approprié soit sur Liaison API.

Paramètres

Entrée

s1_Port (WORD, INT, UINT)

Indique les ports de communication (selon le type d’API) :

  • Port COM, par ex. SYS_COM0_PORT

  • Port Ethernet, par ex. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU, par ex. 16#xx01 (xx = numéro du connecteur) dans COM01

s2_dutParameter (FP_COM_PARAMETER_DUT)

Paramètres à définir pour le port CPU/SCU/MCU

s3_dutPlcLinkParameter (FP_COM_PLCLINK_PARAMETER_DUT)

Paramètres à définir pour la Liaison API

Sortie

d_Result (WORD, INT, UINT)

Adresse de départ de la zone mémoire dans l’unité maître qui sauvegarde le résultat du traitement (1 mot)

Contenu du résultat d_Result

  1.  (1) Octet de poids fort
  2.  (2) Drapeau du résultat de l’exécution

    FALSE : Exécution terminée normalement

    TRUE : Exécution terminée anormalement

  3.  (3) Drapeau de process en cours

    FALSE : Process terminé

    TRUE : Process en cours

  4.  (4) Octet de poids faible (défini uniquement lorsque le process est terminé)
    • 0 : Exécution terminée normalement
    • 1 : Le port de communication spécifié est invalide.
    • 2 : Erreur de paramétrage
    • 3 : Erreur de changement de mode
    • 4 : Le port de communication spécifié est occupé.
    • 5 : Incohérence des paramètres qui doivent être modifiés (début/fin du paramétrage, paramètres spécifiés par des opérandes incohérents)
    • 7 : Configuration du numéro de module sur la façade du module de liaison multifilaire (lorsque le sélecteur rotatif n’est pas défini sur 0).

Remarques

  • Avant d’exécuter l’instruction, vérifiez que le bit 15 (drapeau de process en cours) de la zone de sauvegarde du résultat, spécifiée par dResult, est sur FALSE.

  • Si la modification des paramètres est exécutée pour un port COM alors qu’un envoi/une réception est en cours, l’envoi/la réception est annulé et les paramètres sont modifiés. Les données reçues sont perdues. L’envoi est suspendu.

  • Lorsque la requête de modification est en cours de traitement, le bit 15 de la zone de sauvegarde du résultat d_Result passe à TRUE. Lorsque le process est terminé, il devient FALSE.

  • Le résultat du process est sauvegardé dans la zone spécifiée par d_Result. Si une erreur apparaît, le drapeau du résultat de l’exécution (bit 14) devient TRUE. Le code d’erreur est sauvegardé dans les octets de poids faible de d_Result.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le mode de communication du port approprié n’est pas défini sur Liaison API.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.

  • Si le mode de communication du port approprié n’est pas défini sur Liaison API.

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR
		nPort: INT;
		dutParameter: FP_COM_PARAMETER_DUT;
		dutPlcLinkParameter: FP_COM_PLCLINK_PARAMETER_DUT;
		wResult: WORD:=0;
		bEnable: BOOL:=FALSE;
	END_VAR

Corps en LD

La fonction est exécutée lorsque la variable bEnable est définie sur TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,3,2,5,4,);
B(B_F,FP_COM_SET_PARAMETER!,,12,1,25,7,,?DEN?Ds1_Port?Ds2_dutParameter?Ds3_dutPlcLinkParameter?AENO?Ad_Result);
B(B_VARIN,,nPort,10,3,12,5,);
B(B_VAROUT,,wResult,25,3,27,5,);
B(B_VARIN,,dutParameter,10,4,12,6,);
B(B_VARIN,,dutPlcLinkParameter,10,5,12,7,);
L(1,0,1,7);
L(1,3,3,3);
L(5,3,12,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST body

if (bEnable) then
FP_COM_SET_PARAMETER(s1_Port := nPort,
                     s2_dutParameter := dutParameter,
                     s3_dutPlcLinkParameter := dutPlcLinkParameter, 
					 d_Result => wResult);
end_if;

Modifié le : 2024-03-08Commentaires sur cette pageAssistance téléphonique